From cd6507f1d0d27d77def3bb29dd13986fb3b01491 Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Sun, 11 Sep 2016 15:56:34 +0100 Subject: [PATCH] for release docker binaries we can fetch from docker hub rather than curl, so will be cached Allow override in case docker images not released Signed-off-by: Justin Cormack --- alpine/packages/docker/Makefile | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/alpine/packages/docker/Makefile b/alpine/packages/docker/Makefile index fe2ec2903..ebcd22c5f 100644 --- a/alpine/packages/docker/Makefile +++ b/alpine/packages/docker/Makefile @@ -3,15 +3,37 @@ ARCH?=x86_64 OS?=Linux DOCKER_EXPERIMENTAL?=1 +DOCKER_BINARIES?=docker dockerd docker-proxy docker-runc docker-containerd docker-containerd-ctr docker-containerd-shim + all: usr/bin/docker TEST_HOST=$(shell if echo "$(DOCKER_VERSION)" | grep -q -- '-rc'; then echo "test.docker.com"; else echo "get.docker.com"; fi) -DOCKER_HOST?=$(shell [ "${DOCKER_EXPERIMENTAL}" -eq 1 ] && printf "experimental.docker.com" || printf "${TEST_HOST}") -DOCKER_BIN_URL?="https://${DOCKER_HOST}/builds/${OS}/${ARCH}/docker-${DOCKER_VERSION}.tgz" +ifeq ($(DOCKER_EXPERIMENTAL),1) +DOCKER_HOST=experimental.docker.com +DOCKER_IMAGE?=docker:$(DOCKER_VERSION)-experimental +else +DOCKER_HOST=$(TEST_HOST) +DOCKER_IMAGE?=docker:$(DOCKER_VERSION) +endif -usr/bin/docker: +.PHONY: download hub cleanusr + +ifeq ($(DOCKER_BIN_URL)$(FORCE_CURL),) +usr/bin/docker: hub +else +usr/bin/docker: download +endif + +cleanusr: mkdir -p usr/bin - curl -sSL ${DOCKER_BIN_URL} | tar xzf - && \ + rm -f usr/bin/* + +download: cleanusr +ifdef DOCKER_BIN_URL + curl -sSL ${DOCKER_BIN_URL} | tar xzf - +else + curl -sSL https://${DOCKER_HOST}/builds/${OS}/${ARCH}/docker-${DOCKER_VERSION}.tgz | tar xzf - +endif mv docker/docker-containerd-ctr \ docker/docker \ docker/docker-containerd \ @@ -21,6 +43,9 @@ usr/bin/docker: docker/docker-containerd-shim \ usr/bin/ +hub: cleanusr + docker run $(DOCKER_IMAGE) tar cf - -C /usr/local/bin $(DOCKER_BINARIES) | tar xf - -C usr/bin + clean: rm -rf usr/ docker/