guix docker image

This commit is contained in:
Christine Dodrill 2015-11-05 18:06:31 -08:00
parent 53d2dbda5d
commit eb56a9c5a5
5 changed files with 58 additions and 0 deletions

32
dev/guix/Dockerfile Normal file
View File

@ -0,0 +1,32 @@
FROM alpine
# Add Tini
ENV TINI_VERSION v0.8.3
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-static /tini
RUN chmod +x /tini
ADD ./entrypoint.sh /
ENTRYPOINT ["/entrypoint.sh"]
ENV GUIX_VERSION 0.9.0
ENV PATH $PATH:/var/guix/profiles/default/guix-profile/bin
# update to edge
ADD repositories /etc/apk/repositories
RUN apk update && apk upgrade
# install guix in one pass
RUN set -x && apk update && apk add xz tar wget runit \
&& wget ftp://alpha.gnu.org/gnu/guix/guix-binary-0.9.0.x86_64-linux.tar.xz -O guix.tar.xz \
&& tar xJf guix.tar.xz \
&& rm guix.tar.xz \
&& addgroup guixbuild \
&& chmod 1775 /gnu/store \
&& ln -sf /var/guix/profiles/per-user/root/guix-profile ~root/.guix-profile \
&& mkdir -p /usr/local/bin \
&& cd /usr/local/bin \
&& ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix \
&& guix archive --authorize < ~root/.guix-profile/share/guix/hydra.gnu.org.pub \
&& adduser -S guix-builder guix-builder \
&& adduser guix-builder guixbuild
ADD runit/ /etc/system

14
dev/guix/README.md Normal file
View File

@ -0,0 +1,14 @@
# Guix in Docker
Guix is cool, so is Docker, why not combine them?
```console
$ docker build -t xena/guix .
$ docker run --rm -it --privileged xena/guix /bin/sh
$ pstree
tini-+-runsvdir---runsv---run---guix-daemon
`-sh---pstree
$ guix package --install hello
$ hello
Hello, world!
```

7
dev/guix/entrypoint.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
set -e
runsvdir /etc/system &
exec /tini -- $*

2
dev/guix/repositories Normal file
View File

@ -0,0 +1,2 @@
http://dl-4.alpinelinux.org/alpine/edge/main
http://dl-4.alpinelinux.org/alpine/edge/testing

3
dev/guix/runit/guix-daemon/run Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
~root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild