Files
linuxkit/tools/alpine/Makefile
Rolf Neugebauer ac5122ced7 tools: Add Dockerfile to the Alpine base image to calculate the hash
The Dockerfile is now an input to the contents of the base image and
needs to be included in the hash calculation.

Also, make the Makefile, Dockerfile and pacakges file a dependency.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-26 15:50:54 +01:00

30 lines
1013 B
Makefile

.PHONY: tag push
ORG?=linuxkit
IMAGE=alpine
BASE=alpine:3.6
default: push
hash: Dockerfile Makefile packages
DOCKER_CONTENT_TRUST=1 docker pull $(BASE)
docker build --no-cache -t $(IMAGE):build .
docker run --rm $(IMAGE):build sh -c 'echo Dockerfile /lib/apk/db/installed $$(find /mirror -name '*.apk' -type f) $$(find /go/bin -type f) | xargs cat | sha1sum' | sed 's/ .*//' > $@
push: hash
DOCKER_CONTENT_TRUST=1 docker pull $(ORG)/$(IMAGE):$(shell cat hash) || \
(docker tag $(IMAGE):build $(ORG)/$(IMAGE):$(shell cat hash) && \
DOCKER_CONTENT_TRUST=1 docker push $(ORG)/$(IMAGE):$(shell cat hash))
docker run --rm $(IMAGE):build find /mirror -name '*.apk' -exec basename '{}' .apk \; | sort | (echo '# automatically generated list of installed packages'; cat -) > versions
docker rmi $(IMAGE):build
rm -f hash
tag: hash
docker pull $(ORG)/$(IMAGE):$(shell cat hash) || \
docker tag $(IMAGE):build $(ORG)/$(IMAGE):$(shell cat hash)
docker rmi $(IMAGE):build
rm -f hash
clean:
rm -f hash