From fbebf2a131a58f5d1390f958606b455fa04a812d Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Tue, 1 Nov 2016 11:55:26 +0000 Subject: [PATCH] Add a base image for building AMIs Faster and more repeatable. As the Alpine edge package is not working, use pip. Signed-off-by: Justin Cormack --- alpine/base/Makefile | 2 +- alpine/base/alpine-aws/Dockerfile | 14 ++++++++++++++ alpine/base/alpine-aws/Makefile | 29 +++++++++++++++++++++++++++++ alpine/cloud/Dockerfile.ami | 10 +--------- 4 files changed, 45 insertions(+), 10 deletions(-) create mode 100644 alpine/base/alpine-aws/Dockerfile create mode 100644 alpine/base/alpine-aws/Makefile diff --git a/alpine/base/Makefile b/alpine/base/Makefile index 1a24d26f4..20c61fb08 100644 --- a/alpine/base/Makefile +++ b/alpine/base/Makefile @@ -1,4 +1,4 @@ -DIRS = alpine-base alpine-build-c alpine-build-go +DIRS = $(shell find . -type d -depth 1) .PHONY: clean dirs $(DIRS) push: $(DIRS) diff --git a/alpine/base/alpine-aws/Dockerfile b/alpine/base/alpine-aws/Dockerfile new file mode 100644 index 000000000..c48c8d87c --- /dev/null +++ b/alpine/base/alpine-aws/Dockerfile @@ -0,0 +1,14 @@ +FROM alpine:3.4 + +RUN \ + apk update && apk upgrade && \ + apk add --no-cache \ + curl \ + e2fsprogs \ + jq \ + python \ + py-pip \ + syslinux \ + && true + +RUN pip install -U awscli diff --git a/alpine/base/alpine-aws/Makefile b/alpine/base/alpine-aws/Makefile new file mode 100644 index 000000000..973cbc0bf --- /dev/null +++ b/alpine/base/alpine-aws/Makefile @@ -0,0 +1,29 @@ +.PHONY: tag push + +BASE=alpine:3.4 +IMAGE=alpine-aws + +default: push + +hash: Dockerfile + docker pull $(BASE) + tar cf - $^ | docker build --no-cache -t $(IMAGE):build - + docker run --rm $(IMAGE):build sh -c '(pip list && cat /lib/apk/db/installed) | sha1sum' | sed 's/ .*//' > hash + +push: hash + docker pull mobylinux/$(IMAGE):$(shell cat hash) || \ + (docker tag $(IMAGE):build mobylinux/$(IMAGE):$(shell cat hash) && \ + docker push mobylinux/$(IMAGE):$(shell cat hash)) + docker rmi $(IMAGE):build + rm -f hash + +tag: hash + docker pull mobylinux/$(IMAGE):$(shell cat hash) || \ + docker tag $(IMAGE):build mobylinux/$(IMAGE):$(shell cat hash) + docker rmi $(IMAGE):build + rm -f hash + +clean: + rm -f hash + +.DELETE_ON_ERROR: diff --git a/alpine/cloud/Dockerfile.ami b/alpine/cloud/Dockerfile.ami index 079e8b2d5..8a0f1b688 100644 --- a/alpine/cloud/Dockerfile.ami +++ b/alpine/cloud/Dockerfile.ami @@ -1,13 +1,5 @@ -FROM alpine +FROM mobylinux/alpine-aws:9f937d52372fc1a8a75b57a305d81ca88c522f78 -RUN apk add --update \ - python \ - py-pip \ - curl \ - e2fsprogs \ - jq \ - syslinux -RUN pip install -U awscli RUN mkdir /build RUN mkdir /scripts WORKDIR /scripts