Download base images from Fuel mirror

Docker's upstream repositories are unstable,
so it is important to download content from
Fuel mirror.

blueprint fuel-containerization-of-services

Change-Id: I90115bde9cb96cce81def47d43f7c63544df65dc
This commit is contained in:
Matthew Mosesohn 2014-04-30 15:20:52 +04:00
parent 44954d8ffd
commit 7aabb857f7
5 changed files with 40 additions and 3 deletions

View File

@ -64,6 +64,9 @@ LOCAL_MIRROR_CENTOS:=$(LOCAL_MIRROR)/centos
LOCAL_MIRROR_CENTOS_OS_BASEURL:=$(LOCAL_MIRROR_CENTOS)/os/$(CENTOS_ARCH)
LOCAL_MIRROR_UBUNTU:=$(LOCAL_MIRROR)/ubuntu
LOCAL_MIRROR_UBUNTU_OS_BASEURL:=$(LOCAL_MIRROR_UBUNTU)
LOCAL_MIRROR_DOCKER:=$(LOCAL_MIRROR)/docker
LOCAL_MIRROR_DOCKER_BASEURL:=$(LOCAL_MIRROR_DOCKER)
# Use download.mirantis.com mirror by default. Other possible values are
# 'msk', 'srt', 'usa', 'hrk'.
@ -75,30 +78,36 @@ YUM_REPOS?=proprietary
MIRROR_BASE?=http://fuel-repository.mirantis.com/fwm/$(PRODUCT_VERSION)
MIRROR_CENTOS?=$(MIRROR_BASE)/centos
MIRROR_UBUNTU?=$(MIRROR_BASE)/ubuntu
MIRROR_DOCKER?=$(MIRROR_BASE)/docker
endif
ifeq ($(USE_MIRROR),srt)
YUM_REPOS?=proprietary
MIRROR_BASE?=http://fuel-mirror.srt.mirantis.net/fwm/$(PRODUCT_VERSION)
MIRROR_CENTOS?=$(MIRROR_BASE)/centos
MIRROR_UBUNTU?=$(MIRROR_BASE)/ubuntu
MIRROR_DOCKER?=$(MIRROR_BASE)/docker
endif
ifeq ($(USE_MIRROR),msk)
YUM_REPOS?=proprietary
MIRROR_BASE?=http://fuel-mirror.msk.mirantis.net/fwm/$(PRODUCT_VERSION)
MIRROR_CENTOS?=$(MIRROR_BASE)/centos
MIRROR_UBUNTU?=$(MIRROR_BASE)/ubuntu
MIRROR_DOCKER?=$(MIRROR_BASE)/docker
endif
ifeq ($(USE_MIRROR),hrk)
YUM_REPOS?=proprietary
MIRROR_BASE?=http://fuel-mirror.kha.mirantis.net/fwm/$(PRODUCT_VERSION)
MIRROR_CENTOS?=$(MIRROR_BASE)/centos
MIRROR_UBUNTU?=$(MIRROR_BASE)/ubuntu
MIRROR_DOCKER?=$(MIRROR_BASE)/docker
endif
MIRROR_CENTOS?=http://mirrors.msk.mirantis.net/centos/$(CENTOS_RELEASE)
MIRROR_CENTOS_OS_BASEURL:=$(MIRROR_CENTOS)/os/$(CENTOS_ARCH)
MIRROR_UBUNTU?=http://mirror.yandex.ru/ubuntu/
MIRROR_UBUNTU_OS_BASEURL:=$(MIRROR_UBUNTU)
MIRROR_DOCKER?=$(MIRROR_BASE)/docker
MIRROR_DOCKER_BASEURL:=$(MIRROR_DOCKER)
# MIRROR_FUEL option is valid only for 'fuel' YUM_REPOS section
# and ignored in other cases
MIRROR_FUEL?=http://osci-obs.vm.mirantis.net:82/centos-fuel-$(PRODUCT_VERSION)-stable/centos/

View File

@ -9,7 +9,8 @@ define build_container
$(BUILD_DIR)/docker/$1.done: \
$(BUILD_DIR)/mirror/build.done \
$(BUILD_DIR)/repos/repos.done \
$(BUILD_DIR)/iso/isoroot-files.done
$(BUILD_DIR)/iso/isoroot-files.done \
$(BUILD_DIR)/docker/base-images.done
ifeq ($(DOCKER_PREBUILT),0)
(cd $(LOCAL_MIRROR_CENTOS) && python $(SOURCE_DIR)/utils/simple_http_daemon.py $(RANDOM_PORT) /tmp/simple_http_daemon_$(RANDOM_PORT).pid)
mkdir -p "$(BUILD_DIR)/docker/containers"
@ -29,8 +30,11 @@ endif
$$(ACTION.TOUCH)
endef
$(BUILD_DIR)/docker/base-images.done:
find $(LOCAL_MIRROR_DOCKER_BASEURL)/ -regex '.*xz' | xargs -n1 sudo docker load -i
$(ACTION.TOUCH)
$(BUILD_DIR)/docker/busybox.done:
sudo docker pull busybox
mkdir -p "$(BUILD_DIR)/docker/containers"
sudo docker save busybox > $(BUILD_DIR)/docker/containers/busybox.tar
$(ACTION.TOUCH)

View File

@ -0,0 +1,10 @@
BASE_IMAGE_FILES:=centos.tar.xz busybox.tar.xz
# docker base image files
$(addprefix $(LOCAL_MIRROR_DOCKER_BASEURL)/,$(BASE_IMAGE_FILES)):
@mkdir -p $(@D)
wget -O $@ $(MIRROR_DOCKER_BASEURL)/$(@F)
$(BUILD_DIR)/mirror/docker/base-images.done: \
$(addprefix $(LOCAL_MIRROR_DOCKER_BASEURL)/,$(BASE_IMAGE_FILES))
$(ACTION.TOUCH)

12
mirror/docker/module.mk Normal file
View File

@ -0,0 +1,12 @@
.PHONY: clean-docker
# This module downloads ubuntu installation images.
include $(SOURCE_DIR)/mirror/docker/base-images.mk
clean: clean-docker
clean-docker:
(docker rm -f `docker ps -aq`; docker rmi `docker images -q`) || exit 0
$(BUILD_DIR)/mirror/docker/build.done: \
$(BUILD_DIR)/mirror/docker/base-images.done
$(ACTION.TOUCH)

View File

@ -9,8 +9,10 @@ clean-mirror: clean-ubuntu
include $(SOURCE_DIR)/mirror/centos/module.mk
include $(SOURCE_DIR)/mirror/ubuntu/module.mk
include $(SOURCE_DIR)/mirror/docker/module.mk
$(BUILD_DIR)/mirror/build.done: \
$(BUILD_DIR)/mirror/centos/build.done \
$(BUILD_DIR)/mirror/ubuntu/build.done
$(BUILD_DIR)/mirror/ubuntu/build.done \
$(BUILD_DIR)/mirror/docker/build.done
$(ACTION.TOUCH)