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 <justin.cormack@docker.com>
This commit is contained in:
Justin Cormack 2016-09-11 15:56:34 +01:00
parent 7d08c3f9c1
commit cd6507f1d0

View File

@ -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/