[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Guix in Docker for automated CD/CI of complex software
From: |
zimoun |
Subject: |
Re: Guix in Docker for automated CD/CI of complex software |
Date: |
Mon, 25 Nov 2019 22:33:17 +0100 |
Hi,
On Fri, 22 Nov 2019 at 19:57, Vicente Eduardo <address@hidden> wrote:
> [...] I want to run guix inside docker in order to have a portable
> installation of guix for common ci/cd enviroments.
I was suggesting that maybe you can use Guix to create this image. :-)
--8<---------------cut here---------------start------------->8---
$ guix describe
Generation 57 Nov 25 2019 14:26:15 (current)
guix b5d4d5b
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: b5d4d5b9bcf267fddd02fcc14b88eac0bebf979f
--8<---------------cut here---------------end--------------->8---
--8<---------------cut here---------------start------------->8---
$ guix pack \
-f docker \
-C none \
-S /bin=bin \
-S /lib=lib \
-S /share=share \
-S /etc=etc \
guix
$ docker load < /gnu/store/8vrdpas5s9alpczixc8bw83x9sxc8if5-docker-pack.tar
--8<---------------cut here---------------end--------------->8---
--8<---------------cut here---------------start------------->8---
$ docker run -ti guix guix --version
--8<---------------cut here---------------end--------------->8---
Obviously, it needs some love (dameon) to fit your use case. And I do
not know if it make sense but I would try to replace this Dockerfile
[1] by a manifest and "guix pack". Or maybe as a first step using
Dockerfile based on Guix instead of Alpine.
[1] https://github.com/metacall/guix/blob/master/Dockerfile
And even, instead of the raw instruction, I would use the installation
script [2].
[2] https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
> Here's the metacall schema:
> https://github.com/metacall/distributable/blob/53caad582cd097c5e92798bf0ec16660bfc4030c/source/metacall.scm
>
> My idea is to generate a zip with all libraries self contained, rather than a
> Docker image.
The "guix pack" should fit your need. But I am not sure because it is
a simple cmake-build-system with few (guix) dependencies, i.e., it
"relies a lot in CMake features like ExternalProject".
All the best,
simon