.DEFAULT_GOAL := build GUIX_MANIFEST := manifest.scm GUIX_MANIFEST_DEV := manifest-dev.scm TARBALL ?= guix-tarball-pack.tar.gz LINKS_TARBALL ?= links.tar.gz PASSWD_FILE ?= passwd IMAGE_TAG ?= guix-builder $(PASSWD_FILE): echo 'root:x:0:0:root:/root:/bin/sh' > passwd $(LINKS_TARBALL): ln -s /guix-builder/bin bin tar -czvf $@ bin rm bin $(TARBALL): @cp $$(guix pack -RR -S /bin=bin -S /etc/ssl=etc/ssl -S /lib/locale=lib/locale -m $(GUIX_MANIFEST)) $@ @chmod +w $@ .PHONY: size size: $(TARBALL) guix size $$(guix pack -RR -S /bin=bin -S /etc/ssl=etc/ssl -m $(GUIX_MANIFEST)) .PHONY: build build: $(TARBALL) $(LINKS_TARBALL) $(PASSWD_FILE) @docker build -t $(IMAGE_TAG) . .PHONY: run run: build @docker run --rm -it \ -v /var/guix/daemon-socket/socket:/var/guix/daemon-socket/socket \ -v /gnu/store:/gnu/store:ro \ -v /etc/ssl:/etc/ssl:ro \ -e HOME=/tmp \ -w /tmp \ $(IMAGE_TAG):latest .PHONY: shell shell: @./shell.sh $(GUIX_MANIFEST) $(GUIX_MANIFEST_DEV) .PHONY: clean: rm -r $(TARBALL) $(LINKS_TARBALL) $(PASSWD_FILE)