mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-20 09:39:08 +00:00
Allow docker engine to be pulled from s3 bucket
Use aws cli to pull docker engine binaries from s3 bucket. Conditional and happens if DOCKER_BIN_URL begins with 's3://' Example usage: ``` export AWS_ACCESS_KEY_ID=key export AWS_SECRET_ACCESS_KEY=secret make DOCKER_BIN_URL=s3://path-to-engine-binaries ``` Signed-off-by: Robb Kistler <robb.kistler@docker.com> Signed-off-by: Robb Kistler <robb.kistler@docker.com>
This commit is contained in:
parent
51642e8abb
commit
b2b585ac99
@ -3,6 +3,8 @@ FORCE_CURL?=1
|
|||||||
ARCH?=x86_64
|
ARCH?=x86_64
|
||||||
OS?=Linux
|
OS?=Linux
|
||||||
|
|
||||||
|
AWS_CLI_IMAGE=mobylinux/aws-cli:9432b650794d38a70cf00be4da971367c52d1d5b@sha256:679f6f45fb8598cab90888733a07ddeeb26a27a7889114f89aaf712eaa3abe06
|
||||||
|
|
||||||
all: usr/bin/docker
|
all: usr/bin/docker
|
||||||
|
|
||||||
RELEASE_CANDIDATE=$(findstring -rc,$(DOCKER_VERSION))
|
RELEASE_CANDIDATE=$(findstring -rc,$(DOCKER_VERSION))
|
||||||
@ -37,9 +39,15 @@ cleanusr:
|
|||||||
mkdir -p usr/bin
|
mkdir -p usr/bin
|
||||||
rm -f usr/bin/* ok
|
rm -f usr/bin/* ok
|
||||||
|
|
||||||
|
S3_PREFIX=s3://
|
||||||
|
|
||||||
download: cleanusr
|
download: cleanusr
|
||||||
ifdef DOCKER_BIN_URL
|
ifdef DOCKER_BIN_URL
|
||||||
|
ifeq ($(filter $(S3_PREFIX)%, $(DOCKER_BIN_URL)),)
|
||||||
(curl -fsSL "${DOCKER_BIN_URL}" && touch ok) | tar xzf -
|
(curl -fsSL "${DOCKER_BIN_URL}" && touch ok) | tar xzf -
|
||||||
|
else
|
||||||
|
(docker run --rm -e AWS_SECRET_ACCESS_KEY -e AWS_ACCESS_KEY_ID $(AWS_CLI_IMAGE) s3 cp '$(DOCKER_BIN_URL)' -) | tar xzf -
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
(curl -fsSL https://${DOCKER_HOST}/builds/${OS}/${ARCH}/docker-${DOCKER_VERSION}.tgz && touch ok) | tar xzf -
|
(curl -fsSL https://${DOCKER_HOST}/builds/${OS}/${ARCH}/docker-${DOCKER_VERSION}.tgz && touch ok) | tar xzf -
|
||||||
endif
|
endif
|
||||||
|
11
tools/aws-cli/Dockerfile
Normal file
11
tools/aws-cli/Dockerfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
FROM alpine:3.5
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
mkdir -p /aws && \
|
||||||
|
apk -Uuv add groff less python py-pip && \
|
||||||
|
pip install awscli && \
|
||||||
|
apk --purge -v del py-pip && \
|
||||||
|
rm /var/cache/apk/*
|
||||||
|
|
||||||
|
WORKDIR /aws
|
||||||
|
ENTRYPOINT ["aws"]
|
29
tools/aws-cli/Makefile
Normal file
29
tools/aws-cli/Makefile
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
.PHONY: tag push
|
||||||
|
|
||||||
|
BASE=alpine:3.5
|
||||||
|
IMAGE=aws-cli
|
||||||
|
|
||||||
|
default: push
|
||||||
|
|
||||||
|
hash: Dockerfile
|
||||||
|
DOCKER_CONTENT_TRUST=1 docker pull $(BASE)
|
||||||
|
tar cf - $^ | docker build --no-cache -t $(IMAGE):build -
|
||||||
|
docker run --rm --entrypoint=/bin/sh $(IMAGE):build -c 'cat /Dockerfile /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:
|
Loading…
Reference in New Issue
Block a user