diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 28 |
1 files changed, 21 insertions, 7 deletions
@@ -1,19 +1,27 @@ -DOCKER_USER:=pierres -DOCKER_ORGANIZATION=archlinux +DOCKER_USER:=lukeshu +DOCKER_ORGANIZATION=paradock DOCKER_IMAGE:=base +DOCKER_TAG:=$(shell date -u +'%Y.%m.%d') -rootfs: +pacman.conf.%: /usr/share/pacman/defaults/pacman.conf.% + sed -r "s|^.*Include\s*=\s*/etc/pacman.d/.*\.conf|#&|" < $< > $@ + +rootfs-$(DOCKER_TAG)-%.tar: pacman.conf.% packages exclude $(eval TMPDIR := $(shell mktemp -d)) - env -i pacstrap -C /usr/share/devtools/pacman-extra.conf -c -d -G -M $(TMPDIR) $(shell cat packages) + env -i pacstrap -C $(CURDIR)/pacman.conf.$* -c -d -G -M $(TMPDIR) --hookdir=$(TMPDIR)/etc/pacman.d/hooks $(shell cat packages) cp --recursive --preserve=timestamps --backup --suffix=.pacnew rootfs/* $(TMPDIR)/ arch-chroot $(TMPDIR) locale-gen arch-chroot $(TMPDIR) pacman-key --init arch-chroot $(TMPDIR) pacman-key --populate archlinux - tar --numeric-owner --xattrs --acls --exclude-from=exclude -C $(TMPDIR) -c . -f archlinux.tar + tar --numeric-owner --xattrs --acls --exclude-from=exclude -C $(TMPDIR) -c . -f $@ rm -rf $(TMPDIR) -docker-image: rootfs +Dockerfile: Dockerfile.in .var.DOCKER_TAG + sed 's/@DOCKER_TAG@/$(DOCKER_TAG)/' < $< > $@ + +docker-image: rootfs-$(DOCKER_TAG)-x86_64.tar Dockerfile docker build -t $(DOCKER_ORGANIZATION)/$(DOCKER_IMAGE) . + docker tag $(DOCKER_ORGANIZATION)/$(DOCKER_IMAGE) $(DOCKER_ORGANIZATION)/$(DOCKER_IMAGE):$(DOCKER_TAG) docker-image-test: docker-image # FIXME: /etc/mtab is hidden by docker so the stricter -Qkk fails @@ -33,4 +41,10 @@ docker-push: docker login -u $(DOCKER_USER) docker push $(DOCKER_ORGANIZATION)/$(DOCKER_IMAGE) -.PHONY: rootfs docker-image docker-image-test ci-test docker-push +.PHONY: docker-image docker-image-test ci-test docker-push + +.PHONY: FORCE +.var.%: FORCE + @echo '# $* = $($*)' > .tmp.$@.tmp + @if cmp -s .tmp.$@.tmp $@; then rm -f .tmp.$@.tmp || true; else mv -f .tmp.$@.tmp $@; fi +-include $(wildcard .var.*) |