From c01bf6a5d4ac1640dbe3546cb77c2f3d61b56b74 Mon Sep 17 00:00:00 2001 From: Richard Mortier Date: Fri, 22 Mar 2019 18:01:14 +0000 Subject: make: template `Dockerfile` to support different Alpine versions Signed-off-by: Richard Mortier --- .dockerignore | 1 + Dockerfile | 17 ----------------- Dockerfile.in | 20 ++++++++++++++++++++ Makefile | 18 ++++++++++++++++-- 4 files changed, 37 insertions(+), 19 deletions(-) delete mode 100644 Dockerfile create mode 100644 Dockerfile.in diff --git a/.dockerignore b/.dockerignore index 4f319eb..989208f 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1,3 @@ +Dockerfile.in Makefile abuild diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 6c97f42..0000000 --- a/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -FROM alpine:edge -MAINTAINER Richard Mortier - -RUN apk add --update-cache \ - alpine-conf \ - alpine-sdk \ - && setup-apkcache /var/cache/apk - -RUN adduser -D builder \ - && addgroup builder abuild \ - && echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers - -COPY entrypoint.sh /home/builder - -USER builder -WORKDIR /cwd -ENTRYPOINT ["/home/builder/entrypoint.sh"] diff --git a/Dockerfile.in b/Dockerfile.in new file mode 100644 index 0000000..e15f46d --- /dev/null +++ b/Dockerfile.in @@ -0,0 +1,20 @@ +FROM alpine:%%ALPINE_TAG%% +MAINTAINER Richard Mortier + +RUN apk add --update-cache \ + alpine-conf \ + alpine-sdk \ + && setup-apkcache /var/cache/apk + +RUN adduser -D builder \ + && addgroup builder abuild \ + && echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + +COPY entrypoint.sh /home/builder +RUN echo /home/builder/packages/main >> /etc/apk/repositories \ + && echo /home/builder/packages/community >> /etc/apk/repositories \ + && echo /home/builder/packages/testing >> /etc/apk/repositories + +USER builder +WORKDIR /home/builder +ENTRYPOINT ["/home/builder/entrypoint.sh"] diff --git a/Makefile b/Makefile index b69fb42..a6f00a0 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,21 @@ +TAGS := $(shell \ + curl -s https://registry.hub.docker.com/v1/repositories/alpine/tags \ + | jq -r '.[].name' \ +) + .PHONY: build -build: - DOCKER_BUILDKIT=1 docker build $(DOCKER_FLAGS) -t mor1/abuild . +build: $(patsubst %, build-%, $(TAGS)) + +.PHONY: build-% +build-%: + sed 's/%%ALPINE_TAG%%/$*/' Dockerfile.in >| Dockerfile + DOCKER_BUILDKIT=1 docker build $$DOCKER_FLAGS -t mor1/abuild:$* . + $(RM) Dockerfile .PHONY: push push: build docker push $(DOCKER_FLAGS) mor1/abuild + +.PHONY: clean +clean: + $(RM) Dockerfile -- cgit v1.2.3