* Releasing guix binary in Docker format too? @ 2020-09-22 9:51 Danny Milosavljevic 2020-09-23 11:07 ` Pjotr Prins ` (2 more replies) 0 siblings, 3 replies; 40+ messages in thread From: Danny Milosavljevic @ 2020-09-22 9:51 UTC (permalink / raw) To: guix-devel [-- Attachment #1: Type: text/plain, Size: 1234 bytes --] Hello, I'm working with Heads on using Guix to build Heads' source code reproducibly. Now, Heads has most of its stuff on CI servers that use Docker for a lot of things. Therefore, I used Guix pack in the usual way to create a recent Guix binary release and then just loaded that into a docker container, using that to run "guix build". That got me thinking--this situation is pretty common. Do you think it would make sense to actually build and release a Docker container for Guix (not guix system; just guix-the-package-manager)? While I was researching gitlab, I came across a feature where they have their own Docker container registry on there. Apparently, the Docker CLI can fetch from whatever server the user wants! $ docker run [options] registry.gitlab.com/group/project/image [arguments] That got me thinking, we could easily also release Guix on something like that. Is our HTTP webserver enough to have a Docker registry, without installing extra stuff? $ docker run localhost/foo Unable to find image 'localhost/foo:latest' locally docker: Error response from daemon: Get "http://localhost/v2/": dial tcp 127.0.0.1:80: connect: connection refused. Aha! Do we want to do it? [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-09-22 9:51 Releasing guix binary in Docker format too? Danny Milosavljevic @ 2020-09-23 11:07 ` Pjotr Prins 2020-09-23 12:53 ` zimoun 2020-09-24 7:59 ` Danny Milosavljevic 2020-11-04 11:05 ` Release: Docker Image? DockerHub? skopeo? zimoun 2 siblings, 1 reply; 40+ messages in thread From: Pjotr Prins @ 2020-09-23 11:07 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: guix-devel Hi Danny! On Tue, Sep 22, 2020 at 11:51:05AM +0200, Danny Milosavljevic wrote: > Now, Heads has most of its stuff on CI servers that use Docker for a lot of > things. It would be very interesting to have a Docker registry for a number of (complicated) Guix packages. We have bioinformatics packages living in channels such as http://git.genenetwork.org/guix-bioinformatics/guix-bioinformatics. Bonface built a GeneNetwork Docker image for CI. I would like to see Docker images for vgtools, gemma, sambamba and other products we are (co)developing. A Guix Docker container could be the starting point for live installs on highly divergent systems (including an HPC cluster we are building). > While I was researching gitlab, I came across a feature where they have their > own Docker container registry on there. Apparently, the Docker CLI can fetch > from whatever server the user wants! > > $ docker run [options] registry.gitlab.com/group/project/image [arguments] > > That got me thinking, we could easily also release Guix on something like > that. Is our HTTP webserver enough to have a Docker registry, without > installing extra stuff? > > $ docker run localhost/foo > Unable to find image 'localhost/foo:latest' locally > docker: Error response from daemon: Get "http://localhost/v2/": dial tcp 127.0.0.1:80: connect: connection refused. > > Aha! > > Do we want to do it? I say YES :). If we have a way to create these containers we can distribute them through http IPFS. We'll help write a nice discovery web interface which initially can be a simple web page. I don't think we need Docker containers for every package. But if there is a demand for a specific tool it can be very helpful to distribute software that way. In fact, one software I am writing depends on a host of programming languages including Python, Racket and Rust. A Guix Docker container is by far the simplest solution to distribute the software. And Guix containers are tiny - which is really nice. Pj. ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-09-23 11:07 ` Pjotr Prins @ 2020-09-23 12:53 ` zimoun 0 siblings, 0 replies; 40+ messages in thread From: zimoun @ 2020-09-23 12:53 UTC (permalink / raw) To: Pjotr Prins; +Cc: Guix Devel, Mathieu Othacehe Hi, (Sorry Dany I have overlooked this email.) > > While I was researching gitlab, I came across a feature where they have their > > own Docker container registry on there. Apparently, the Docker CLI can fetch > > from whatever server the user wants! > > > > $ docker run [options] registry.gitlab.com/group/project/image [arguments] > > > > That got me thinking, we could easily also release Guix on something like > > that. Is our HTTP webserver enough to have a Docker registry, without > > installing extra stuff? Docker images can be quickly really big. Can Berlin support such traffic? > > $ docker run localhost/foo > > Unable to find image 'localhost/foo:latest' locally > > docker: Error response from daemon: Get "http://localhost/v2/": dial tcp 127.0.0.1:80: connect: connection refused. > > > > Aha! > > > > Do we want to do it? > > I say YES :). If we have a way to create these containers we can > distribute them through http IPFS. We'll help write a nice discovery > web interface which initially can be a simple web page. I don't think > we need Docker containers for every package. But if there is a demand > for a specific tool it can be very helpful to distribute software that > way. At FOSDEM19, in the session "world domination", we discussed a service where the user provides a manifest.scm file or click to select various packages (and optionally a channels.scm file) and then the service returns the Docker image ready to be pulled (or docker run URL). Well, this killer-feature "service" seems a far objective. :-) Proposing a Docker image ready-to-use containing the package manager could be nice and a first step in that direction, IMHO. The same way <http://guix.gnu.org/en/download/latest/>, maybe adding a Docker (or Singularity) image would be nice to have. > In fact, one software I am writing depends on a host of programming > languages including Python, Racket and Rust. A Guix Docker container > is by far the simplest solution to distribute the software. And Guix > containers are tiny - which is really nice. Guix containers tiny? It depends on what you pack. :-) (For example, only Emacs is not tiny.) All the best, simon ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-09-22 9:51 Releasing guix binary in Docker format too? Danny Milosavljevic 2020-09-23 11:07 ` Pjotr Prins @ 2020-09-24 7:59 ` Danny Milosavljevic 2020-10-20 10:29 ` zimoun 2020-11-04 11:05 ` Release: Docker Image? DockerHub? skopeo? zimoun 2 siblings, 1 reply; 40+ messages in thread From: Danny Milosavljevic @ 2020-09-24 7:59 UTC (permalink / raw) To: guix-devel [-- Attachment #1: Type: text/plain, Size: 464 bytes --] Also, while doing that, using the guix binary 1.1.0 tarball from the website and issuing guix pull (ONLY), a lot of weird stuff is updated, like libx11, fribidi, graphviz, cairo, pixman, libjpeg-turbo, pango etc. Is that really necessary? I guess it's because of the profile hooks, but still... why. I want to stress that the profile I'm building contains only guix, the package manager. Does that really need all those (presumably build-) dependencies? [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-09-24 7:59 ` Danny Milosavljevic @ 2020-10-20 10:29 ` zimoun 2020-10-21 9:12 ` Ludovic Courtès 0 siblings, 1 reply; 40+ messages in thread From: zimoun @ 2020-10-20 10:29 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: Guix Devel Hi Danny, Back to this. Since it would be nice to try to release (somewhere?) an experimental guix Docker image. On Thu, 24 Sep 2020 at 10:00, Danny Milosavljevic <dannym@scratchpost.org> wrote: > Also, while doing that, using the guix binary 1.1.0 tarball from the website and > issuing guix pull (ONLY), a lot of weird stuff is updated, like libx11, fribidi, > graphviz, cairo, pixman, libjpeg-turbo, pango etc. Is that really necessary? > I guess it's because of the profile hooks, but still... why. Well, all these come from 'graphviz'. --8<---------------cut here---------------start------------->8--- for target in libx11 fribidi graphviz cairo pixman libjpeg-turbo pango; do printf "guix->$target: "; guix graph --path guix $target \ |head -n2|tail -n1; done guix->libx11: graphviz@2.42.3 guix->fribidi: graphviz@2.42.3 guix->graphviz: graphviz@2.42.3 guix->cairo: graphviz@2.42.3 guix->pixman: graphviz@2.42.3 guix->libjpeg-turbo: graphviz@2.42.3 guix->pango: graphviz@2.42.3 --8<---------------cut here---------------end--------------->8--- And AFAIU, this 'graphivz' package is only used to produce the images in the manual. Similarly, the package 'texinfo' which pulls *a lot* could be removed. Well, maybe it is worth to maintain a "guix-minimal" package and to inherit from this one to have the current 'guix' package. WDYT? > I want to stress that the profile I'm building contains only guix, the package > manager. Does that really need all those (presumably build-) dependencies? I agree. All the best, simon ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-10-20 10:29 ` zimoun @ 2020-10-21 9:12 ` Ludovic Courtès 2020-10-21 10:57 ` zimoun 2020-10-21 11:04 ` Size of package 'guix' zimoun 0 siblings, 2 replies; 40+ messages in thread From: Ludovic Courtès @ 2020-10-21 9:12 UTC (permalink / raw) To: zimoun; +Cc: Guix Devel Hi, zimoun <zimon.toutoune@gmail.com> skribis: > Back to this. Since it would be nice to try to release (somewhere?) > an experimental guix Docker image. Among the issues to be addressed is whether we can push to DockerHub with free software only (there was a discussion recently on IRC about a tool to do that, but I don’t remember the details.) > guix->libx11: graphviz@2.42.3 > guix->fribidi: graphviz@2.42.3 > guix->graphviz: graphviz@2.42.3 > guix->cairo: graphviz@2.42.3 > guix->pixman: graphviz@2.42.3 > guix->libjpeg-turbo: graphviz@2.42.3 > guix->pango: graphviz@2.42.3 > > And AFAIU, this 'graphivz' package is only used to produce the images > in the manual. Similarly, the package 'texinfo' which pulls *a lot* > could be removed. These are build-time dependencies so that should only be a problem when one has to build ‘guix’ from source. Thanks, Ludo’. ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-10-21 9:12 ` Ludovic Courtès @ 2020-10-21 10:57 ` zimoun 2020-10-21 15:42 ` Ludovic Courtès 2020-10-21 11:04 ` Size of package 'guix' zimoun 1 sibling, 1 reply; 40+ messages in thread From: zimoun @ 2020-10-21 10:57 UTC (permalink / raw) To: Ludovic Courtès, Jelle Licht; +Cc: Guix Devel Hi, (adding Jelle because of 'skopeo' :-)) On Wed, 21 Oct 2020 at 11:12, Ludovic Courtès <ludo@gnu.org> wrote: > > Back to this. Since it would be nice to try to release (somewhere?) > > an experimental guix Docker image. > > Among the issues to be addressed is whether we can push to DockerHub > with free software only (there was a discussion recently on IRC about a > tool to do that, but I don’t remember the details.) The tool is 'skopeo' and packaged in Guix. However, push to DockerHub requires an account (by Guix project) which requires... probably non-free JS, at least once. Then pulling does not require an account so it is compliant with GNU standards---at as I understand them. Therefore, the question is: does the GNU Guix project agree to use non-free tools to spread freedom? (Note, GNU Emacs should do something like that with Windows and MacOS <https://www.gnu.org/software/emacs/download.html#nonfree>; I mean, it is impossible to port Emacs and maintain it on Windows or MacOS without owning at least one machine running Windows/MacOS.) On the other hand, Guix could host its own registry <https://docs.docker.com/registry/>. Or maybe, an "institution" from Guix HPC could help. Last, 'skopeo' seems able to fetch "tarball images". Therefore, on the Guix side, it is nothing more than another item in the store. However, it means that the user must have 'skopeo' to fetch the image. It really decreases the audience. Well, maybe it is the easiest first experimental move: - generate by the CI the Docker image as tarball - add one experimental box on <http://guix.gnu.org/en/download/> - write the 'skopeo' command line WDYT? All the best, simon ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-10-21 10:57 ` zimoun @ 2020-10-21 15:42 ` Ludovic Courtès 2020-11-04 14:43 ` Danny Milosavljevic 0 siblings, 1 reply; 40+ messages in thread From: Ludovic Courtès @ 2020-10-21 15:42 UTC (permalink / raw) To: zimoun; +Cc: Guix Devel Hi, zimoun <zimon.toutoune@gmail.com> skribis: > The tool is 'skopeo' and packaged in Guix. > > However, push to DockerHub requires an account (by Guix project) which > requires... probably non-free JS, at least once. Hmm OK. Users of Docker wouldn’t have to create an account and run the non-free JS, so this is probably acceptable. The next problem is: what would this image contain? ‘guix pack guix’ is probably not enough because people expect the daemon to be running. Adding ‘--entry-point=bin/guix-daemon’ probably isn’t good either because ‘guix-daemon’ never exits, which I think is contrary to what users expect. For the same reason, an image produced by ‘guix system docker-image’ may not be OK because ‘shepherd’ never returns. Should we change ‘guix system docker-image’ such that ‘shepherd’ is started in the background? Thanks, Ludo’. ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-10-21 15:42 ` Ludovic Courtès @ 2020-11-04 14:43 ` Danny Milosavljevic 2020-11-06 9:59 ` Ludovic Courtès 0 siblings, 1 reply; 40+ messages in thread From: Danny Milosavljevic @ 2020-11-04 14:43 UTC (permalink / raw) To: Ludovic Courtès; +Cc: Guix Devel [-- Attachment #1: Type: text/plain, Size: 1823 bytes --] Hi Ludo, On Wed, 21 Oct 2020 17:42:36 +0200 Ludovic Courtès <ludo@gnu.org> wrote: > zimoun <zimon.toutoune@gmail.com> skribis: > > > The tool is 'skopeo' and packaged in Guix. > > > > However, push to DockerHub requires an account (by Guix project) which > > requires... probably non-free JS, at least once. > > Hmm OK. Users of Docker wouldn’t have to create an account and run the > non-free JS, so this is probably acceptable. > > The next problem is: what would this image contain? ‘guix pack guix’ is > probably not enough because people expect the daemon to be running. > Adding ‘--entry-point=bin/guix-daemon’ probably isn’t good either > because ‘guix-daemon’ never exits, which I think is contrary to what > users expect. It really depends on how people use the images. It's totally normal for docker containers to start services they need in the foreground on container startup, and people then entering that running container from the outside anyway (!) using docker tools. The guix I packaged on https://gitlab.com/daym/guix-on-docker/ is specifically used as a test runner, which is why I background guix-daemon there. Otherwise, the gitlab test runners would hang waiting for guix-daemon to finish (which never happens). If I wouldn't need that, I'd totally not background stuff. > For the same reason, an image produced by ‘guix system docker-image’ may > not be OK because ‘shepherd’ never returns. > > Should we change ‘guix system docker-image’ such that ‘shepherd’ is > started in the background? Why? Docker tools are perfectly capable of entering a docker container where a foreground process is running. Also, one has to be careful that the container doesn't get stopped since the last process finished. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-11-04 14:43 ` Danny Milosavljevic @ 2020-11-06 9:59 ` Ludovic Courtès 2020-11-06 12:47 ` zimoun 0 siblings, 1 reply; 40+ messages in thread From: Ludovic Courtès @ 2020-11-06 9:59 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: Guix Devel Hi! Danny Milosavljevic <dannym@scratchpost.org> skribis: > On Wed, 21 Oct 2020 17:42:36 +0200 > Ludovic Courtès <ludo@gnu.org> wrote: > >> zimoun <zimon.toutoune@gmail.com> skribis: >> >> > The tool is 'skopeo' and packaged in Guix. >> > >> > However, push to DockerHub requires an account (by Guix project) which >> > requires... probably non-free JS, at least once. >> >> Hmm OK. Users of Docker wouldn’t have to create an account and run the >> non-free JS, so this is probably acceptable. >> >> The next problem is: what would this image contain? ‘guix pack guix’ is >> probably not enough because people expect the daemon to be running. >> Adding ‘--entry-point=bin/guix-daemon’ probably isn’t good either >> because ‘guix-daemon’ never exits, which I think is contrary to what >> users expect. > > It really depends on how people use the images. > > It's totally normal for docker containers to start services they need in > the foreground on container startup, and people then entering that > running container from the outside anyway (!) using docker tools. OK so this: guix pack guix -f docker -S /bin=bin \ --entry-point="bin/guix-daemon --disable-chroot" might work, right? Someone needs to try because the devil is in the details. To me there are still important unknowns regarding an official Docker image (how to build it, how to upload it), so I’m not confident about getting that done in time for 1.2, but progress on that front is welcome anytime! Thanks, Ludo’. ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-11-06 9:59 ` Ludovic Courtès @ 2020-11-06 12:47 ` zimoun 2020-11-06 13:28 ` Danny Milosavljevic 0 siblings, 1 reply; 40+ messages in thread From: zimoun @ 2020-11-06 12:47 UTC (permalink / raw) To: Ludovic Courtès, Danny Milosavljevic; +Cc: Guix Devel Hi, On Fri, 06 Nov 2020 at 10:59, Ludovic Courtès <ludo@gnu.org> wrote: > guix pack guix -f docker -S /bin=bin \ > --entry-point="bin/guix-daemon --disable-chroot" > > might work, right? > > Someone needs to try because the devil is in the details. I will try to give a try. If someone does not beat me. > To me there are still important unknowns regarding an official Docker > image (how to build it, how to upload it), so I’m not confident about > getting that done in time for 1.2, but progress on that front is welcome > anytime! I am proposing to add an experimental box to: https://guix.gnu.org/en/download/latest/ Docker image with maybe a link to Cookbook (or elsewhere). It is the best way to have feedback. :-) Yeah, you are right, it is premature to communicate via the release v1.2 without more tests. All the best, simon ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-11-06 12:47 ` zimoun @ 2020-11-06 13:28 ` Danny Milosavljevic 2020-11-08 17:33 ` Ludovic Courtès 2020-11-15 18:30 ` zimoun 0 siblings, 2 replies; 40+ messages in thread From: Danny Milosavljevic @ 2020-11-06 13:28 UTC (permalink / raw) To: zimoun; +Cc: Guix Devel [-- Attachment #1: Type: text/plain, Size: 1522 bytes --] Hi, On Fri, 06 Nov 2020 13:47:02 +0100 zimoun <zimon.toutoune@gmail.com> wrote: > On Fri, 06 Nov 2020 at 10:59, Ludovic Courtès <ludo@gnu.org> wrote: > > > guix pack guix -f docker -S /bin=bin \ > > --entry-point="bin/guix-daemon --disable-chroot" Why --disable-chroot here? (I'm not objecting to it) > > might work, right? > > > > Someone needs to try because the devil is in the details. > > I will try to give a try. If someone does not beat me. Please do. Note: guix-daemon needs a usergroup in order to actually usefully build things, with at least one member user. If Docker actually has first-class composition operators (I don't know), then that should not go into the same image--but that means the end user has to provide a /etc/group and /etc/passwd with at least the "guixbuild" group and at least one member in that group as a composable image[maybe 1] in order for guix-daemon to actually work. Also, guix needs /etc/services for http and https and so on to resolve. Or you could just add those to the main guix docker image--but I think that would be kinda weird (even though I'm doing it for mine--but it has a kind of narrow use case where this is fine for the time being). Or provide the host /etc/passwd using the "-v" command line option (that would be kinda weird, too). Or expect the user to always create a dockerfile and use "FROM" to derive from the offical image. [1] https://docs.docker.com/compose/compose-file/compose-file-v2/ [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-11-06 13:28 ` Danny Milosavljevic @ 2020-11-08 17:33 ` Ludovic Courtès 2020-11-15 18:30 ` zimoun 1 sibling, 0 replies; 40+ messages in thread From: Ludovic Courtès @ 2020-11-08 17:33 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: Guix Devel Hi Danny, Danny Milosavljevic <dannym@scratchpost.org> skribis: > On Fri, 06 Nov 2020 13:47:02 +0100 > zimoun <zimon.toutoune@gmail.com> wrote: > >> On Fri, 06 Nov 2020 at 10:59, Ludovic Courtès <ludo@gnu.org> wrote: >> >> > guix pack guix -f docker -S /bin=bin \ >> > --entry-point="bin/guix-daemon --disable-chroot" > > Why --disable-chroot here? (I'm not objecting to it) Because otherwise the container needs to be started with ‘--privileged’ if I’m not mistaken. But maybe that’s OK? > Note: guix-daemon needs a usergroup in order to actually usefully build > things, with at least one member user. So to me that means we need to augment ‘guix pack -f docker’ so it can add the right Docker metadata regarding user accounts. > If Docker actually has first-class composition operators (I don't know), then > that should not go into the same image--but that means the end user has to > provide a /etc/group and /etc/passwd with at least the "guixbuild" group and > at least one member in that group as a composable image[maybe 1] in order > for guix-daemon to actually work. > > Also, guix needs /etc/services for http and https and so on to resolve. Right, it’s just about adding ‘net-base’ to the image. Thanks, Ludo’. ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-11-06 13:28 ` Danny Milosavljevic 2020-11-08 17:33 ` Ludovic Courtès @ 2020-11-15 18:30 ` zimoun 2020-11-17 16:38 ` Danny Milosavljevic 1 sibling, 1 reply; 40+ messages in thread From: zimoun @ 2020-11-15 18:30 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: Guix Devel Hi, >> > guix pack guix -f docker -S /bin=bin \ >> > --entry-point="bin/guix-daemon --disable-chroot" [...] >> > Someone needs to try because the devil is in the details. >> >> I will try to give a try. If someone does not beat me. > > Please do. I did and probably am lost in Docker details (the mentioned devil? ;-)) --8<---------------cut here---------------start------------->8--- $ docker load < \ > $(guix time-machine --branch=version-1.2.0 \ > -- pack guix -f docker -S /bin=bin --entry-point="bin/guix-daemon") Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'... Loaded image: guix:latest $ docker images --format "{{.Repository}} {{.Tag}} {{.ID}} {{.Size}}" guix latest 7a99e79f803c 502MB $ docker run -d --name guix guix:latest 7ecfb3311619d1265f1e91a45f587b28e3017c39735c9527b91bac5b0d5d49e1 $ docker ps 7ecfb3311619 guix:latest "/gnu/store/62iy7phi…" 5 seconds ago Up 4 seconds guix $ docker exec guix guix pack hello user with UID 0 not found substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable substitute: guix substitute: warning: ci.guix.gnu.org: host not found: Servname not supported for ai_socktype The following derivations will be built: /gnu/store/p8w0ickl7n4psa5rkybx0q856phzxmpp-glibc-utf8-locales-2.31.drv [...] /gnu/store/ll89ynpa8xrk2q4fvyg2aj8ig98w4zls-mkfontdir-1.0.7.tar.bz2.drv building /gnu/store/wj0dnfmik81160y3zf85qf5hvkp2x1hi-libX11-1.6.10.tar.bz2.drv... builder for `/gnu/store/wj0dnfmik81160y3zf85qf5hvkp2x1hi-libX11-1.6.10.tar.bz2.drv' failed with exit code 1 build of /gnu/store/wj0dnfmik81160y3zf85qf5hvkp2x1hi-libX11-1.6.10.tar.bz2.drv failed View build log at '/var/log/guix/drvs/wj/0dnfmik81160y3zf85qf5hvkp2x1hi-libX11-1.6.10.tar.bz2.drv.bz2'. building /gnu/store/4d3cjvjrgs0q38fs3bgfajcw7apc0vml-Python-3.5.9.tar.xz.drv... cannot build derivation `/gnu/store/mvf88n2v90jjxg9n8b315p22r6jrkbyb-libx11-1.6.A.drv': 1 dependencies couldn't be built killing process 29 guix pack: error: build of `/gnu/store/mvf88n2v90jjxg9n8b315p22r6jrkbyb-libx11-1.6.A.drv' failed --8<---------------cut here---------------end--------------->8--- I have tried various Docker option and I have failed to figure out the correct one. I should miss the obvious. My eyes are a bit tired these days. Any hint? BTW, the tool skopeo failed in the branch version-1.2.0 as ’weather’ confirms. Therefore the Cookbook recipe will be for the next release. Cheers, simon ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-11-15 18:30 ` zimoun @ 2020-11-17 16:38 ` Danny Milosavljevic 2020-11-18 12:56 ` Bengt Richter 0 siblings, 1 reply; 40+ messages in thread From: Danny Milosavljevic @ 2020-11-17 16:38 UTC (permalink / raw) To: zimoun; +Cc: Guix Devel [-- Attachment #1: Type: text/plain, Size: 1515 bytes --] Hi, On Sun, 15 Nov 2020 19:30:44 +0100 zimoun <zimon.toutoune@gmail.com> wrote: > $ docker exec guix guix pack hello > user with UID 0 not found Docker needs to generate a /etc/passwd with uid 0 and the guix build user accounts, and a /etc/group with the guixbuild group; and whatever other users the things that are composed together using docker compose[1] require. How does this work in Docker-land ? > substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable We need to configure substitute server acls (/etc/guix/acl). So this one is totally our fault. > substitute: guix substitute: warning: ci.guix.gnu.org: host not found: Servname not supported for ai_socktype Docker needs to generate /etc/services with a union of the required services of all the things that are composed together using docker compose. All in all, these are all obvious things which guix-on-docker already works around (I don't know the official way that surely exists--hence the workarounds). The question is: since Docker supports composition[1], how do they handle this standard case ? How can we get Docker to generate /etc/services, /etc/passwd and /etc/group for the composed docker image ? > BTW, the tool skopeo failed in the branch version-1.2.0 as ’weather’ > confirms. Therefore the Cookbook recipe will be for the next release. (I can't help with skopeo, never used it before) [1] https://docs.docker.com/compose/ [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-11-17 16:38 ` Danny Milosavljevic @ 2020-11-18 12:56 ` Bengt Richter 2020-11-18 13:52 ` Ryan Prior 0 siblings, 1 reply; 40+ messages in thread From: Bengt Richter @ 2020-11-18 12:56 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: Guix Devel Hi, On +2020-11-17 17:38:09 +0100, Danny Milosavljevic wrote: > Hi, > > On Sun, 15 Nov 2020 19:30:44 +0100 > zimoun <zimon.toutoune@gmail.com> wrote: > > > $ docker exec guix guix pack hello > > user with UID 0 not found > > Docker needs to generate a /etc/passwd with uid 0 and the guix build user accounts, and a /etc/group with the guixbuild group; and whatever other users the things that are composed together using docker compose[1] require. How does this work in Docker-land ? > How much would change if the guix daemon were implemented a little differently? E.g., (quoted from [1]), does the following mean that the guix daemon potentially could run "projects" instead of guixbuilder* to create "Multiple isolated environments on a single host" ? Is it suggestive to anyone else? --8<---------------cut here---------------start------------->8--- The features of Compose that make it effective are: Multiple isolated environments on a single host Preserve volume data when containers are created Only recreate containers that have changed Variables and moving a composition between environments Multiple isolated environments on a single host Compose uses a project name to isolate environments from each other. You can make use of this project name in several different contexts: on a dev host, to create multiple copies of a single environment, such as when you want to run a stable copy for each feature branch of a project on a CI server, to keep builds from interfering with each other, you can set the project name to a unique build number on a shared host or dev host, to prevent different projects, which may use the same service names, from interfering with each other The default project name is the basename of the project directory. You can set a custom project name by using the -p command line option or the COMPOSE_PROJECT_NAME environment variable. --8<---------------cut here---------------end--------------->8--- [...] > > The question is: since Docker supports composition[1], how do they handle this standard case ? How can we get Docker to generate /etc/services, /etc/passwd and /etc/group for the composed docker image ? > I guess this question would morph if guixbuilder* became "projects", where "you can set the project name to a unique build number". [...] > > [1] https://docs.docker.com/compose/ -- Regards, Bengt Richter ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-11-18 12:56 ` Bengt Richter @ 2020-11-18 13:52 ` Ryan Prior 2020-11-18 14:25 ` zimoun 0 siblings, 1 reply; 40+ messages in thread From: Ryan Prior @ 2020-11-18 13:52 UTC (permalink / raw) To: Danny Milosavljevic, Bengt Richter Cc: Development of GNU Guix and the GNU System distribution [-- Attachment #1: Type: text/plain, Size: 2166 bytes --] On November 18, 2020, Bengt Richter <bokr@bokr.com> wrote: > E.g., (quoted from [1]), does the following mean that the guix daemon > potentially could run "projects" > instead of guixbuilder* to create "Multiple isolated environments on a > single host" ? > The features of Compose that make it effective are: > > Multiple isolated environments on a single host > Preserve volume data when containers are created > Only recreate containers that have changed > Variables and moving a composition between environments I love docker-compose and have used it every day. There are a bunch of workflows I use compose for that I haven't figured out how to replace with Guix yet, and I'm not in a huge hurry, but it would be great to see features that are designed to appeal to Compose users. For example, a common thing I do with docker-compose is to provide a compose file with a service I'm working on that brings up the service with all its dependencies (eg databases, proxies, etc.) in a dev configuration, with the source code from the repository mapped into the container and live-reload enabled. That creates a "two-step" dev environment for the service: you clone the repo then run "docker-compose up." Hashicorp has been working on Waypoint[1], a free software tool to extend that concept even further by adding deployment and release capabilities. Now you clone a repo and you have one tool to build, deploy and release the software contained therein. I'm interested to use Guix for similar purposes, but there are a few primary obstacles in the way: 1) I don't have enough experience yet defining systems using Guix similar to what I'd define using docker-compose, and I haven't found documentation or examples yet that makes it seem within reach 2) The machines I'm deploying to run Kubernetes, not Guix System, so if I do use Guix to build a bundle for deployment its utility ends when I export to a Docker container image. 3) I collaborate with developers who use macOS and Windows and so can't easily install and use Guix. [1] https://www.waypointproject.io/ [-- Attachment #2: Type: text/html, Size: 4479 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Releasing guix binary in Docker format too? 2020-11-18 13:52 ` Ryan Prior @ 2020-11-18 14:25 ` zimoun 0 siblings, 0 replies; 40+ messages in thread From: zimoun @ 2020-11-18 14:25 UTC (permalink / raw) To: Ryan Prior; +Cc: Development of GNU Guix and the GNU System distribution Hi, Thank you for your feedback. On Wed, 18 Nov 2020 at 14:53, Ryan Prior <ryanprior@hey.com> wrote: >> Multiple isolated environments on a single host >> Preserve volume data when containers are created >> Only recreate containers that have changed >> Variables and moving a composition between environments [...] > For example, a common thing I do with docker-compose is to provide a compose file with a service I'm working on that brings up the service with all its dependencies (eg databases, proxies, etc.) in a dev configuration, with the source code from the repository mapped into the container and live-reload enabled. That creates a "two-step" dev environment for the service: you clone the repo then run "docker-compose up." Do you have configuration files of minimal examples? Just to understand what you mean using concrete examples. > Hashicorp has been working on Waypoint[1], a free software tool to extend that concept even further by adding deployment and release capabilities. Now you clone a repo and you have one tool to build, deploy and release the software contained therein. > > I'm interested to use Guix for similar purposes, but there are a few primary obstacles in the way: > 1) I don't have enough experience yet defining systems using Guix similar to what I'd define using docker-compose, and I haven't found documentation or examples yet that makes it seem within reach > 2) The machines I'm deploying to run Kubernetes, not Guix System, so if I do use Guix to build a bundle for deployment its utility ends when I export to a Docker container image. Thanks for pointing this out. > 3) I collaborate with developers who use macOS and Windows and so can't easily install and use Guix. I speak for myself, the idea is to build Docker images using Guix for this case. Otherwise, I do not know if it is worth but someone pointed this [1] for Windows. 1: <https://github.com/giuliano108/guix-packages/blob/master/notes/Guix-on-WSL2.md> All the best, simon ^ permalink raw reply [flat|nested] 40+ messages in thread
* Size of package 'guix' 2020-10-21 9:12 ` Ludovic Courtès 2020-10-21 10:57 ` zimoun @ 2020-10-21 11:04 ` zimoun 2020-10-21 15:44 ` Ludovic Courtès 1 sibling, 1 reply; 40+ messages in thread From: zimoun @ 2020-10-21 11:04 UTC (permalink / raw) To: Ludovic Courtès; +Cc: Guix Devel Hi, On Wed, 21 Oct 2020 at 11:12, Ludovic Courtès <ludo@gnu.org> wrote: > > guix->libx11: graphviz@2.42.3 > > guix->fribidi: graphviz@2.42.3 > > guix->graphviz: graphviz@2.42.3 > > guix->cairo: graphviz@2.42.3 > > guix->pixman: graphviz@2.42.3 > > guix->libjpeg-turbo: graphviz@2.42.3 > > guix->pango: graphviz@2.42.3 > > > > And AFAIU, this 'graphivz' package is only used to produce the images > > in the manual. Similarly, the package 'texinfo' which pulls *a lot* > > could be removed. > > These are build-time dependencies so that should only be a problem when > one has to build ‘guix’ from source. What do you mean by "build 'guix' from source"? My point is "guix-minimal" could be more minimal; not only remove "guile-ssh" but also "texinfo", "grapviz", "po4a" at least and maybe more. Cheers, simon ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Size of package 'guix' 2020-10-21 11:04 ` Size of package 'guix' zimoun @ 2020-10-21 15:44 ` Ludovic Courtès 2020-10-21 16:04 ` zimoun 0 siblings, 1 reply; 40+ messages in thread From: Ludovic Courtès @ 2020-10-21 15:44 UTC (permalink / raw) To: zimoun; +Cc: Guix Devel zimoun <zimon.toutoune@gmail.com> skribis: > On Wed, 21 Oct 2020 at 11:12, Ludovic Courtès <ludo@gnu.org> wrote: > >> > guix->libx11: graphviz@2.42.3 >> > guix->fribidi: graphviz@2.42.3 >> > guix->graphviz: graphviz@2.42.3 >> > guix->cairo: graphviz@2.42.3 >> > guix->pixman: graphviz@2.42.3 >> > guix->libjpeg-turbo: graphviz@2.42.3 >> > guix->pango: graphviz@2.42.3 >> > >> > And AFAIU, this 'graphivz' package is only used to produce the images >> > in the manual. Similarly, the package 'texinfo' which pulls *a lot* >> > could be removed. >> >> These are build-time dependencies so that should only be a problem when >> one has to build ‘guix’ from source. > > What do you mean by "build 'guix' from source"? I mean that it doesn’t matter that ‘guix’ depends on ‘graphviz’ at build time as long as you can get a substitute for it. IOW, ‘graphviz’ is not among the references of ‘guix’: --8<---------------cut here---------------start------------->8--- $ guix size guix |grep graphviz $ echo $? 1 --8<---------------cut here---------------end--------------->8--- Ludo’. ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Size of package 'guix' 2020-10-21 15:44 ` Ludovic Courtès @ 2020-10-21 16:04 ` zimoun 0 siblings, 0 replies; 40+ messages in thread From: zimoun @ 2020-10-21 16:04 UTC (permalink / raw) To: Ludovic Courtès; +Cc: Guix Devel On Wed, 21 Oct 2020 at 17:44, Ludovic Courtès <ludo@gnu.org> wrote: > >> These are build-time dependencies so that should only be a problem when > >> one has to build ‘guix’ from source. > > > > What do you mean by "build 'guix' from source"? > > I mean that it doesn’t matter that ‘guix’ depends on ‘graphviz’ at build > time as long as you can get a substitute for it. IOW, ‘graphviz’ is not > among the references of ‘guix’: Maybe we are not talking about the same thing. :-) Let's take the example of building Guix on GitLab CI. So, it needs to fetch a lot (as Danny said) on their infra, then build and publish the produced "artifact". The next time it will build, then it will fetch a lot, again. Well, it depends on the caching facilities and maybe these dependencies are not required for this particular use case. Cheers, simon ^ permalink raw reply [flat|nested] 40+ messages in thread
* Release: Docker Image? DockerHub? skopeo? 2020-09-22 9:51 Releasing guix binary in Docker format too? Danny Milosavljevic 2020-09-23 11:07 ` Pjotr Prins 2020-09-24 7:59 ` Danny Milosavljevic @ 2020-11-04 11:05 ` zimoun 2020-11-04 13:44 ` Jelle Licht 2020-11-04 14:50 ` Danny Milosavljevic 2 siblings, 2 replies; 40+ messages in thread From: zimoun @ 2020-11-04 11:05 UTC (permalink / raw) To: Danny Milosavljevic, guix-devel Hi, Some days ago, we discussed on #guix about releasing Docker images ready-to-use. And you pointed your project: https://gitlab.com/daym/guix-on-docker/ First question for Danny: is it ready to include it to the release? Include meaning communicate about it – with the status experimental. Second question for Ludo: does the Guix project officially push a Docker image to DockerHub? Third question for all: do we add an experimental box on the “Download” section of the website [0]? Fourth question for Jelle: do you have time to add examples to the Cookbook using the package ’skopeo’? If not, who could? This is a follow-up to the thread, started here [1] and arguments about DockerHub and co. there [2] and Ludo’s comments [3]. 0: http://guix.gnu.org/en/download/ 1: https://lists.gnu.org/archive/html/guix-devel/2020-09/msg00212.html 2: https://lists.gnu.org/archive/html/guix-devel/2020-10/msg00352.html 3: https://lists.gnu.org/archive/html/guix-devel/2020-10/msg00352.html Feedback welcome. All the best, simon ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Release: Docker Image? DockerHub? skopeo? 2020-11-04 11:05 ` Release: Docker Image? DockerHub? skopeo? zimoun @ 2020-11-04 13:44 ` Jelle Licht 2020-11-04 14:50 ` Danny Milosavljevic 1 sibling, 0 replies; 40+ messages in thread From: Jelle Licht @ 2020-11-04 13:44 UTC (permalink / raw) To: zimoun, Danny Milosavljevic, guix-devel Hello, zimoun <zimon.toutoune@gmail.com> writes: > Some days ago, we discussed on #guix about releasing Docker images > ready-to-use. And you pointed your project: > > https://gitlab.com/daym/guix-on-docker/ [snip] > Fourth question for Jelle: do you have time to add examples to the > Cookbook using the package ’skopeo’? If not, who could? I was actually putting that on the back burner for now, as I felt I first needed some time to understand Danny's `guix-on-docker' better in order for the skopeo stuff to warrant a cookbook section. The entire workflow as I use it now can be summarized by the following three-liner: --8<---------------cut here---------------start------------->8--- REGISTRY_IMAGE=registry.gitlab.com/group/project IMG=$(guix pack --save-provenance -f docker --entry-point=bin/hello hello) skopeo copy --dest-creds USERNAME[:PASSWORD] \ "docker-archive://$IMG" \ "docker://${REGISTRY_IMAGE}:latest" --8<---------------cut here---------------end--------------->8--- > This is a follow-up to the thread, started here [1] and arguments about > DockerHub and co. there [2] and Ludo’s comments [3]. Our timing is pretty bad here, as Dockerhub updated some of their policies only two days ago regarding usage limits for both 'anonymous' and free tier registered users [4]. > 1: https://lists.gnu.org/archive/html/guix-devel/2020-09/msg00212.html > 2: https://lists.gnu.org/archive/html/guix-devel/2020-10/msg00352.html > 3: https://lists.gnu.org/archive/html/guix-devel/2020-10/msg00352.html [4]: https://www.docker.com/blog/what-you-need-to-know-about-upcoming-docker-hub-rate-limiting/ - Jelle ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Release: Docker Image? DockerHub? skopeo? 2020-11-04 11:05 ` Release: Docker Image? DockerHub? skopeo? zimoun 2020-11-04 13:44 ` Jelle Licht @ 2020-11-04 14:50 ` Danny Milosavljevic 2020-11-15 21:30 ` zimoun 1 sibling, 1 reply; 40+ messages in thread From: Danny Milosavljevic @ 2020-11-04 14:50 UTC (permalink / raw) To: zimoun; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 911 bytes --] Hi zimoun, On Wed, 04 Nov 2020 12:05:28 +0100 zimoun <zimon.toutoune@gmail.com> wrote: > Some days ago, we discussed on #guix about releasing Docker images > ready-to-use. And you pointed your project: > > https://gitlab.com/daym/guix-on-docker/ > > First question for Danny: is it ready to include it to the release? > Include meaning communicate about it – with the status experimental. Yes. It's done. For the use case I'm using it for, guix-on-docker is final now. I doubt that I'll change anything in it, and certainly nothing major. Right now, my gitlab project automatically tracks guix from git master on savannah and rebuilds that and pushes the result to gitlab's docker registry (every time someone commits to guix master). If we wanted the gitlab project to track a release tag, we'd have to configure it to do building from a tag, too. If so, please tell me. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Release: Docker Image? DockerHub? skopeo? 2020-11-04 14:50 ` Danny Milosavljevic @ 2020-11-15 21:30 ` zimoun 2020-11-17 16:31 ` Danny Milosavljevic 0 siblings, 1 reply; 40+ messages in thread From: zimoun @ 2020-11-15 21:30 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: guix-devel Hi Danny, Sorry to be late. On Wed, 04 Nov 2020 at 15:50, Danny Milosavljevic <dannym@scratchpost.org> wrote: >> Some days ago, we discussed on #guix about releasing Docker images >> ready-to-use. And you pointed your project: >> >> https://gitlab.com/daym/guix-on-docker/ [...] > For the use case I'm using it for, guix-on-docker is final now. > I doubt that I'll change anything in it, and certainly nothing major. I have simply tried: docker run -d --name guix registry.gitlab.com/daym/guix-on-docker docker exec guix guix pack hello Wow! The image is huge: 5.23GB registry.gitlab.com/daym/guix-on-docker latest 884b4a4ddf61 Is it expected? BTW, I am noting that there are couple of layers: "RootFS": { "Type": "layers", "Layers": [ "sha256:c3deb477b7310360aaa445de77aa7c16f4cee76db5163c2c70573f49b2b26943", "sha256:8128b7241acd71f13fc7bdcc5cda139e0ab75a2a987db6268d8d0f74b0974fe9", "sha256:ba90a34fcea86f444a3ceb192ad2b6ad2d1ba86c1df4e9b4746114d86472f1a8", "sha256:c2f9dceb24a4df38f7e708db969792ac3061270f6322411b503c347ff98399b0", "sha256:39e027c52cb13e22b7b2a729b07e23f3574662ee482fb5c09b42c6cf51020cf6", "sha256:5a938600c9db6ce11a1e561b2c57448a999970ebeb82539276afead86bc44319", "sha256:541970bba9516720676f088c629ff12048ce478a2bd5e2b7da21c50feaa619f1", "sha256:3cc6fdb7c0cc6b5bca938df9a5fa03fe3438333f3c9f686f8a90b1fc785ff07f", "sha256:298ab852047104192cc6c5347154843f3669810c215377bcc280dbfb89277708", "sha256:a5a94f3837bafc49d54ef88f98eb3e162e78248c8b055ab17fd057b2d57d6d2e", "sha256:697ddc7e64d6cd06293d0840abc4876c3f27fccc70e35efd4f07d84d0e3e6d63" ] }, I am not sure to understand why. It reminds me this previous thread: <https://yhetil.org/guix-user/CAKjnHz1X26QhPEWZfOmAbEmZHQA1qdU_Dq7U6kVXUqG7vCvuhw@mail.gmail.com> Well, I do not know. Then, the ’docker exec’ downloads \o/ and then fails with: guix pack: error: getting status of `/tmp': No such file or directory Hum, as in the other message, I am sure I am missing the obvious with Docker options. > Right now, my gitlab project automatically tracks guix from git master on > savannah and rebuilds that and pushes the result to gitlab's docker > registry (every time someone commits to guix master). > > If we wanted the gitlab project to track a release tag, we'd have to > configure it to do building from a tag, too. If so, please tell me. Currently, it builds master, right? I have not looked but do you think it could possible to track the both branches master and version-1.x.y? Thanks, simon ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Release: Docker Image? DockerHub? skopeo? 2020-11-15 21:30 ` zimoun @ 2020-11-17 16:31 ` Danny Milosavljevic 2020-11-17 16:50 ` Danny Milosavljevic 2020-11-17 17:30 ` zimoun 0 siblings, 2 replies; 40+ messages in thread From: Danny Milosavljevic @ 2020-11-17 16:31 UTC (permalink / raw) To: zimoun; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1303 bytes --] Hi, On Sun, 15 Nov 2020 22:30:51 +0100 zimoun <zimon.toutoune@gmail.com> wrote: > Wow! The image is huge: > > 5.23GB registry.gitlab.com/daym/guix-on-docker latest 884b4a4ddf61 > > Is it expected? Yes, because Docker is silly. It will continue to grow. It should be better when you use an external volume as /gnu/store and /var/guix. > <https://yhetil.org/guix-user/CAKjnHz1X26QhPEWZfOmAbEmZHQA1qdU_Dq7U6kVXUqG7vCvuhw@mail.gmail.com> > Then, the ’docker exec’ downloads \o/ and then fails with: > guix pack: error: getting status of `/tmp': No such file or directory > > Hum, as in the other message, I am sure I am missing the obvious with > Docker options. Yeah, someone needs to create /tmp. That someone is not Guix (it would be weird). /tmp is a common directory, so it does not belong to any of the parts that have been composed, or maybe there should be a standard "/tmp" part? Is there such a standard "/tmp" part in Docker-land? Similarly, but worse, with /etc/passwd, /etc/group, /etc/services and so on. > Currently, it builds master, right? I have not looked but do you think > it could possible to track the both branches master and version-1.x.y? Yes, right now it builds current master. Sure, could easily make it do both. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Release: Docker Image? DockerHub? skopeo? 2020-11-17 16:31 ` Danny Milosavljevic @ 2020-11-17 16:50 ` Danny Milosavljevic 2020-11-17 17:30 ` zimoun 1 sibling, 0 replies; 40+ messages in thread From: Danny Milosavljevic @ 2020-11-17 16:50 UTC (permalink / raw) To: zimoun; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 333 bytes --] Hi, > Yeah, someone needs to create /tmp. That someone is not Guix (it would be weird). There is a workaround in /with-guix-daemon.scm in that guix-on-docker container, which is how I'm using it. The entrypoint I'm using (with the unmodified guix-on-docker image) is ["guix", "repl", "--", "/with-guix-daemon.scm"] [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Release: Docker Image? DockerHub? skopeo? 2020-11-17 16:31 ` Danny Milosavljevic 2020-11-17 16:50 ` Danny Milosavljevic @ 2020-11-17 17:30 ` zimoun 2020-11-17 19:23 ` Danny Milosavljevic 1 sibling, 1 reply; 40+ messages in thread From: zimoun @ 2020-11-17 17:30 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: guix-devel Hi Danny, On Tue, 17 Nov 2020 at 17:31, Danny Milosavljevic <dannym@scratchpost.org> wrote: >> Wow! The image is huge: >> >> 5.23GB registry.gitlab.com/daym/guix-on-docker latest 884b4a4ddf61 >> >> Is it expected? > > Yes, because Docker is silly. It will continue to grow. Oh, bad news! 5.23GB is already too much. > It should be better when you use an external volume as /gnu/store and /var/guix. > ><https://yhetil.org/guix-user/CAKjnHz1X26QhPEWZfOmAbEmZHQA1qdU_Dq7U6kVXUqG7vCvuhw@mail.gmail.com> Well, from the thread above, you be interested by the Chris’s message: <https://yhetil.org/guix-user/87h7vyxqrz.fsf@gmail.com/> >> Hum, as in the other message, I am sure I am missing the obvious with >> Docker options. > > Yeah, someone needs to create /tmp. That someone is not Guix (it > would be weird). Created where? Because /tmp is obviously on the host machine. :-) If with the container: --8<---------------cut here---------------start------------->8--- docker exec guix mkdir -h OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"mkdir\": executable file not found in $PATH": unknown --8<---------------cut here---------------end--------------->8--- Sorry to be so naive. > /tmp is a common directory, so it does not belong to any of the parts that > have been composed, or maybe there should be a standard "/tmp" part? > > Is there such a standard "/tmp" part in Docker-land? > > Similarly, but worse, with /etc/passwd, /etc/group, /etc/services and so on. I do not know. >> Currently, it builds master, right? I have not looked but do you think >> it could possible to track the both branches master and version-1.x.y? > > Yes, right now it builds current master. > > Sure, could easily make it do both. Cool! Thanks. Cheers, simon ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Release: Docker Image? DockerHub? skopeo? 2020-11-17 17:30 ` zimoun @ 2020-11-17 19:23 ` Danny Milosavljevic 2020-11-17 19:28 ` Danny Milosavljevic 2020-11-19 9:21 ` zimoun 0 siblings, 2 replies; 40+ messages in thread From: Danny Milosavljevic @ 2020-11-17 19:23 UTC (permalink / raw) To: zimoun; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 3158 bytes --] Hi zimoun, On Tue, 17 Nov 2020 18:30:57 +0100 zimoun <zimon.toutoune@gmail.com> wrote: > > Yeah, someone needs to create /tmp. That someone is not Guix (it > > would be weird). > > Created where? Created when creating the docker image--presumably by Docker when evaluating Composefile. AFAIK Docker images are supposed to be composed of multiple things using a Composefile.[1] So Docker has to have some mechanism to set up the shared space that all those multiple things need. Ideally, we/the user should use this mechanism to add /tmp--not create it manually by some weird script in the running container. > If with the container: > > --8<---------------cut here---------------start------------->8--- > docker exec guix mkdir -h > OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"mkdir\": executable file not found in $PATH": unknown You have to use guix repl, then it will work. There's no coreutils in there, just guix. That's what /with-guix-daemon.scm in guix-on-docker does (it's already in the image), among other weird things. I paste it in full here: (use-modules (ice-9 match)) (if (not (file-exists? "/tmp")) (mkdir "/tmp")) (system "/root/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild --disable-chroot &") (sleep 2) (match (command-line) ((me next-executable rest ...) (match (cons next-executable rest) ;; gitlab runner invokes "sh -c" for a shell existence check. ;; Replace it by bash. (("sh" "-c" rest ...) (apply execlp "guix" '("guix" "environment" "--ad-hoc" "bash" "coreutils" "--" "bash"))) ((next-executable rest) (apply execlp next-executable (cons next-executable rest))))) ((me) ;; For gitlab runner, see <https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#overriding-the-entrypoint-of-an-image>. (apply execlp "guix" '("guix" "repl")))) (exit 1) It's used as entrypoint by me manually (because it's full of weird workarounds like this it's NOT the default entrypoint), overriding docker's entrypoint by ["guix", "repl", "--", "/with-guix-daemon.scm"]. > Sorry to be so naive. No, I don't use docker that much--and when I do, it's to run simple images others have created. So I just really don't know how this is supposed to be set up. I mean there has to be a way to set this up--that is one of the first things anyone would need--shared /tmp, /etc/passwd, /etc/group, /etc/services and so on. The parts that are composed together by Docker have to negotiate a common version of those, right? > > /tmp is a common directory, so it does not belong to any of the parts that > > have been composed, or maybe there should be a standard "/tmp" part? > > > > Is there such a standard "/tmp" part in Docker-land? > > > > Similarly, but worse, with /etc/passwd, /etc/group, /etc/services and so on. > > I do not know. I hope that others will chime in explaining what the standard way to do this is. The workaround above *does* work, though (and is the wrong thing to do). [1] https://docs.docker.com/compose/ [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Release: Docker Image? DockerHub? skopeo? 2020-11-17 19:23 ` Danny Milosavljevic @ 2020-11-17 19:28 ` Danny Milosavljevic 2020-11-17 21:44 ` Ryan Prior 2020-11-17 22:05 ` Carlo Zancanaro 2020-11-19 9:21 ` zimoun 1 sibling, 2 replies; 40+ messages in thread From: Danny Milosavljevic @ 2020-11-17 19:28 UTC (permalink / raw) To: zimoun; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 269 bytes --] Hmm, maybe I'm misunderstanding what Docker compose does entirely. Reading the docs it seems to just manage multiple isolated Docker images and deploy new ones? What then is used to do the equivalent of a guix profile with multiple packages in a Docker image? [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Release: Docker Image? DockerHub? skopeo? 2020-11-17 19:28 ` Danny Milosavljevic @ 2020-11-17 21:44 ` Ryan Prior 2020-11-17 22:05 ` Carlo Zancanaro 1 sibling, 0 replies; 40+ messages in thread From: Ryan Prior @ 2020-11-17 21:44 UTC (permalink / raw) To: zimoun, Danny Milosavljevic Cc: Development of GNU Guix and the GNU System distribution [-- Attachment #1: Type: text/plain, Size: 1472 bytes --] On November 17, 2020, Danny Milosavljevic <dannym@scratchpost.org> wrote: > Hmm, maybe I'm misunderstanding what Docker compose does entirely. What docker-compose does is it creates a set of Docker containers for you based on a configuration file. In that file you define services, filesystem volumes and their mount points, virtual private networks, environment variables, and so on. This saves you the trouble of running a bunch of "docker run ..." commands to set up a cluster of containers. But docker-compose doesn't do anything you couldn't already do with Docker alone; it uses the Docker API to give you a more convenient interface. > Reading the docs it seems to just manage multiple isolated Docker > images and > deploy new ones? That's exactly what it does. > What then is used to do the equivalent of a guix profile with multiple > packages > in a Docker image? Something a lot of Dockers users initially think you can do, but you actually can't, is to merge two Docker images together. There's a "ruby" image and there's a "python" image but you can't just say hey Docker I want a "ruby+python" image. So there is no direct equivalent to a Guix profile with multiple packages. What you can do is start from one image, add what's needed from the other to create a new base image, and then go from there. But you have to manage that manually by running "apt" commands for Debian or "apk" for Alpine or whatever, as part of your Dockerfile build process. [-- Attachment #2: Type: text/html, Size: 3918 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Release: Docker Image? DockerHub? skopeo? 2020-11-17 19:28 ` Danny Milosavljevic 2020-11-17 21:44 ` Ryan Prior @ 2020-11-17 22:05 ` Carlo Zancanaro 1 sibling, 0 replies; 40+ messages in thread From: Carlo Zancanaro @ 2020-11-17 22:05 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: guix-devel Hey Danny, On Wed, Nov 18 2020, Danny Milosavljevic wrote: > Hmm, maybe I'm misunderstanding what Docker compose does > entirely. > > Reading the docs it seems to just manage multiple isolated > Docker images and deploy new ones? Yep, that's all it does. It lets you link together ports and volumes, and expose ports to the host machine, but it doesn't do anything particularly magical. I think it only does things that you could have done by starting images with the right docker invocations. > What then is used to do the equivalent of a guix profile with > multiple packages in a Docker image? I don't think there is a way to compose multiple docker images into a single image. Carlo ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Release: Docker Image? DockerHub? skopeo? 2020-11-17 19:23 ` Danny Milosavljevic 2020-11-17 19:28 ` Danny Milosavljevic @ 2020-11-19 9:21 ` zimoun 2020-11-19 10:49 ` Danny Milosavljevic 1 sibling, 1 reply; 40+ messages in thread From: zimoun @ 2020-11-19 9:21 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: guix-devel Hi Danny, Thank you for the explanations. Make sense. :-) On Tue, 17 Nov 2020 at 20:23, Danny Milosavljevic <dannym@scratchpost.org> wrote: > No, I don't use docker that much--and when I do, it's to run simple images > others have created. So I just really don't know how this is supposed to > be set up. I mean there has to be a way to set this up--that is one of the > first things anyone would need--shared /tmp, /etc/passwd, /etc/group, > /etc/services and so on. The parts that are composed together by Docker have > to negotiate a common version of those, right? I don’t use Docker that much neither–and when I do it’s to create somehow Docker images via “guix pack -f docker” and run somehow this simple image. Well, I have never read cover-to-cover the Docker doc, for example. :-) > I hope that others will chime in explaining what the standard way to do this > is. The workaround above *does* work, though (and is the wrong thing to do). Let’s postpone this Docker image work and start a new fresh thread once v1.2.0 is published and the goal to have something for v1.3.0, well that’s my point of view. Cheers, simon ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: Release: Docker Image? DockerHub? skopeo? 2020-11-19 9:21 ` zimoun @ 2020-11-19 10:49 ` Danny Milosavljevic 2020-11-20 11:34 ` /etc/passwd & co. in Docker images Ludovic Courtès 0 siblings, 1 reply; 40+ messages in thread From: Danny Milosavljevic @ 2020-11-19 10:49 UTC (permalink / raw) To: zimoun; +Cc: guix-devel, Ryan Prior [-- Attachment #1: Type: text/plain, Size: 2075 bytes --] Hi zimoun, On Thu, 19 Nov 2020 10:21:16 +0100 zimoun <zimon.toutoune@gmail.com> wrote: > Let’s postpone this Docker image work and start a new fresh thread once > v1.2.0 is published and the goal to have something for v1.3.0, well > that’s my point of view. After Ryan Prior's E-Mail I'm pretty sure my workaround of creating /tmp, /etc/passwd, /etc/group etc is what Docker actually expects one to do. So we can just create those--either at runtime, or maybe even have guix system docker-image do it at build time (if it doesn't already). I have no opinion on when we should do that (at this release or the next one), except to state that I am certain that it works (and pretty easily), because guix-on-docker does that already and guix works just fine there. That still leaves to explain how to prevent Docker from keeping older layers when it doesn't need to. In guix-on-docker I have a Dockerfile like this FROM alpine:3.12 AS bootstrap-guix-on-alpine [...] FROM scratch AS guix-on-docker COPY --from=bootstrap-guix-on-alpine /etc/guix /etc/guix COPY --from=bootstrap-guix-on-alpine /var/guix /var/guix COPY --from=bootstrap-guix-on-alpine /gnu /gnu COPY --from=bootstrap-guix-on-alpine /usr/local /usr/local COPY --from=bootstrap-guix-on-alpine /root/.config/guix /root/.config/guix ADD set-mtimes.scm / ADD etc/passwd /etc ADD etc/group /etc ADD etc/services /etc ADD with-guix-daemon.scm / RUN ["/usr/local/bin/guix", "repl", "/set-mtimes.scm"] in order to prevent Docker from keeping older layers[1]. The "set-times.scm" invocation there is in order to fix the timestamps. "COPY --from=" does not preserve timestamps. Then guile is very annoyed because it can't use any of the ".go" files--because they are older than the respective ".scm" files. Using set-times.scm means it will create yet another layer where the only difference is the timestamps--so it doubles the size of the resulting image. But then it works. [1] https://docs.docker.com/develop/develop-images/multistage-build/ [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* /etc/passwd & co. in Docker images 2020-11-19 10:49 ` Danny Milosavljevic @ 2020-11-20 11:34 ` Ludovic Courtès 2020-11-20 18:53 ` Ryan Prior 2020-11-22 16:00 ` Danny Milosavljevic 0 siblings, 2 replies; 40+ messages in thread From: Ludovic Courtès @ 2020-11-20 11:34 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: guix-devel, Ryan Prior Hi, Danny Milosavljevic <dannym@scratchpost.org> skribis: > After Ryan Prior's E-Mail I'm pretty sure my workaround of creating /tmp, > /etc/passwd, /etc/group etc is what Docker actually expects one to do. I’ve been pondering whether to create those files in ‘guix pack -f docker’ and… > ADD etc/passwd /etc > ADD etc/group /etc > ADD etc/services /etc > ADD with-guix-daemon.scm / > RUN ["/usr/local/bin/guix", "repl", "/set-mtimes.scm"] … what you’re doing here suggest that ‘guix pack’ should indeed create those files. Thoughts? Ludo’. ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: /etc/passwd & co. in Docker images 2020-11-20 11:34 ` /etc/passwd & co. in Docker images Ludovic Courtès @ 2020-11-20 18:53 ` Ryan Prior 2020-11-22 16:00 ` Danny Milosavljevic 1 sibling, 0 replies; 40+ messages in thread From: Ryan Prior @ 2020-11-20 18:53 UTC (permalink / raw) To: Danny Milosavljevic, Ludovic Courtès Cc: Development of GNU Guix and the GNU System distribution [-- Attachment #1: Type: text/plain, Size: 974 bytes --] On November 20, 2020, "Ludovic Courtès" <ludo@gnu.org> wrote: > … what you’re doing here suggest that ‘guix pack’ should indeed create > those files. Oh I think it should be an option. Many Docker containers do not need those things, but it would be great to have the option to include them. Another option that would be nice, for the sake of `guix deploy` and `guix pack`, is to produce a static build. I've tried adjusting some Guix packages to produce static builds and seen dramatic reduction in bundle sizes. I've brought up those observations in IRC and from those convos I know most people aren't interested in static builds, but for deployments to a cluster, a tiny container image with a single static binary in it can be just the thing you want. This maybe plays into the "parametric packages" thread that's happening in parallel, because I could see offering this as a "static?" parameter on packages that support it. [-- Attachment #2: Type: text/html, Size: 3297 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: /etc/passwd & co. in Docker images 2020-11-20 11:34 ` /etc/passwd & co. in Docker images Ludovic Courtès 2020-11-20 18:53 ` Ryan Prior @ 2020-11-22 16:00 ` Danny Milosavljevic 2020-11-22 16:49 ` Ryan Prior 2020-11-29 12:51 ` Danny Milosavljevic 1 sibling, 2 replies; 40+ messages in thread From: Danny Milosavljevic @ 2020-11-22 16:00 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel, Ryan Prior [-- Attachment #1: Type: text/plain, Size: 2877 bytes --] Hi Ludo, On Fri, 20 Nov 2020 12:34:07 +0100 Ludovic Courtès <ludo@gnu.org> wrote: > Danny Milosavljevic <dannym@scratchpost.org> skribis: > > > After Ryan Prior's E-Mail I'm pretty sure my workaround of creating /tmp, > > /etc/passwd, /etc/group etc is what Docker actually expects one to do. > > I’ve been pondering whether to create those files in ‘guix pack -f > docker’ and… > > > ADD etc/passwd /etc > > ADD etc/group /etc > > ADD etc/services /etc > > ADD with-guix-daemon.scm / > > RUN ["/usr/local/bin/guix", "repl", "/set-mtimes.scm"] > > … what you’re doing here suggest that ‘guix pack’ should indeed create > those files. > > Thoughts? If guix pack can be used to put multiple packages into one pack, are then packs like profiles, or would that be too much? Because the question is what to do if you invoke guix pack -f docker guix postgresql . Both need user accounts--and thus the total required user accounts (and thus the contents of /etc/passwd) are the union of the respective required user accounts of both packages. So someone needs to merge those, and for that the packages need to require these user accounts in the first place. But usually in Guix it's Guix *services* that require user accounts and not Guix packages. (which makes sense!) So I would suggest that guix system docker-image ... create /etc/passwd by merging the required user accounts like described above, but guix pack -f docker a b c really can't do that. I mean where would it know the requirements from? But creating /tmp with the right permissions should be easy enough (?). That leaves how we want to do a Guix release to a Docker registry. I think if you pack guix-the-package-manager, the question is whether there are scenarios (100% offloading for example) that allow you to use guix without the guix daemon also running inside the docker container. If so, it doesn't make sense to add /etc/passwd and /etc/services and so on for guix-daemon in the guix pack case, especially since it singles out one Guix package, guix, for special consideration. Then you'd use the guix pack'ed image for using guix-the-package-manager with 100% offload. We should release a minimal guix-the-operating-system to a docker registry so the guix-daemon also works (i.e. built using guix system docker-image). You'd use this Docker system image when you want to use both guix and guix-daemon. Are there any downsides to just using a trimmed-down operating-system definition in order to have a docker image with a working guix-daemon ? Or we can instead add a static /etc/passwd in Docker after the fact and then release that to a Docker registry--that's what guix-on-docker does now (though that doubles the size of the result because Docker is being silly). [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: /etc/passwd & co. in Docker images 2020-11-22 16:00 ` Danny Milosavljevic @ 2020-11-22 16:49 ` Ryan Prior 2020-11-29 12:51 ` Danny Milosavljevic 1 sibling, 0 replies; 40+ messages in thread From: Ryan Prior @ 2020-11-22 16:49 UTC (permalink / raw) To: Ludovic Courtès, Danny Milosavljevic Cc: Development of GNU Guix and the GNU System distribution [-- Attachment #1: Type: text/plain, Size: 1054 bytes --] On November 22, 2020, Danny Milosavljevic <dannym@scratchpost.org> wrote: > Because the question is what to do if you invoke > > guix pack -f docker guix postgresql > [snip] > So I would suggest that > > guix system docker-image ... > > create /etc/passwd by merging the required user accounts like > described > above, but > > guix pack -f docker a b c > > really can't do that. This makes sense to me. If you pack just some packages, you get the binaries/libs/whatever but no supporting structure. If you pack a service or a system, you get the supporting structure to make it able to run. Then it's a matter of documenting this appropriately and making it discoverable. For example, something I want to do is set up an action in my CI that runs a Postgres db and a Rails service, then kicks off some tests. So how do I figure out what Guix command to run so that I can get Postgres and Rails into a Docker image, not just as bare minimal binaries but as services that I can actually run? [-- Attachment #2: Type: text/html, Size: 3337 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: /etc/passwd & co. in Docker images 2020-11-22 16:00 ` Danny Milosavljevic 2020-11-22 16:49 ` Ryan Prior @ 2020-11-29 12:51 ` Danny Milosavljevic 2020-12-05 15:08 ` Ludovic Courtès 1 sibling, 1 reply; 40+ messages in thread From: Danny Milosavljevic @ 2020-11-29 12:51 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel, Ryan Prior [-- Attachment #1: Type: text/plain, Size: 474 bytes --] On the other hand, we have this: (define-public network-manager-openconnect (package (name "network-manager-openconnect") [...] (properties `([...] ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf' ;; file refers to account "nm-openconnect". Specify it here ;; so that 'network-manager-service-type' creates it. (user-accounts . ("nm-openconnect")))))) So which is it? [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: /etc/passwd & co. in Docker images 2020-11-29 12:51 ` Danny Milosavljevic @ 2020-12-05 15:08 ` Ludovic Courtès 0 siblings, 0 replies; 40+ messages in thread From: Ludovic Courtès @ 2020-12-05 15:08 UTC (permalink / raw) To: Danny Milosavljevic; +Cc: guix-devel, Ryan Prior Danny Milosavljevic <dannym@scratchpost.org> skribis: > On the other hand, we have this: > > (define-public network-manager-openconnect > (package > (name "network-manager-openconnect") > [...] > (properties `([...] > ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf' > ;; file refers to account "nm-openconnect". Specify it here > ;; so that 'network-manager-service-type' creates it. > (user-accounts . ("nm-openconnect")))))) Nice, I had forgotten about that. That’s a very local solution though: only for NM VPN plugins (see e52b953434b255f53e61125c7fd3653adcebdab8). I don’t think we’d want to generalize that: that’d be redundant with the service framework and not the right place to add that info since it’s only partial information about the kind of resources the service needs. Ludo’. ^ permalink raw reply [flat|nested] 40+ messages in thread
end of thread, other threads:[~2020-12-05 15:08 UTC | newest] Thread overview: 40+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-09-22 9:51 Releasing guix binary in Docker format too? Danny Milosavljevic 2020-09-23 11:07 ` Pjotr Prins 2020-09-23 12:53 ` zimoun 2020-09-24 7:59 ` Danny Milosavljevic 2020-10-20 10:29 ` zimoun 2020-10-21 9:12 ` Ludovic Courtès 2020-10-21 10:57 ` zimoun 2020-10-21 15:42 ` Ludovic Courtès 2020-11-04 14:43 ` Danny Milosavljevic 2020-11-06 9:59 ` Ludovic Courtès 2020-11-06 12:47 ` zimoun 2020-11-06 13:28 ` Danny Milosavljevic 2020-11-08 17:33 ` Ludovic Courtès 2020-11-15 18:30 ` zimoun 2020-11-17 16:38 ` Danny Milosavljevic 2020-11-18 12:56 ` Bengt Richter 2020-11-18 13:52 ` Ryan Prior 2020-11-18 14:25 ` zimoun 2020-10-21 11:04 ` Size of package 'guix' zimoun 2020-10-21 15:44 ` Ludovic Courtès 2020-10-21 16:04 ` zimoun 2020-11-04 11:05 ` Release: Docker Image? DockerHub? skopeo? zimoun 2020-11-04 13:44 ` Jelle Licht 2020-11-04 14:50 ` Danny Milosavljevic 2020-11-15 21:30 ` zimoun 2020-11-17 16:31 ` Danny Milosavljevic 2020-11-17 16:50 ` Danny Milosavljevic 2020-11-17 17:30 ` zimoun 2020-11-17 19:23 ` Danny Milosavljevic 2020-11-17 19:28 ` Danny Milosavljevic 2020-11-17 21:44 ` Ryan Prior 2020-11-17 22:05 ` Carlo Zancanaro 2020-11-19 9:21 ` zimoun 2020-11-19 10:49 ` Danny Milosavljevic 2020-11-20 11:34 ` /etc/passwd & co. in Docker images Ludovic Courtès 2020-11-20 18:53 ` Ryan Prior 2020-11-22 16:00 ` Danny Milosavljevic 2020-11-22 16:49 ` Ryan Prior 2020-11-29 12:51 ` Danny Milosavljevic 2020-12-05 15:08 ` Ludovic Courtès
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).