From 3689ef7df6de9f8fe9f31a604019bf5ab6da06b8 Mon Sep 17 00:00:00 2001 From: Guohan Lu Date: Thu, 15 Dec 2016 06:29:58 +0000 Subject: [PATCH 1/2] squash docker-base image --- rules/docker-base.mk | 2 +- slave.mk | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/rules/docker-base.mk b/rules/docker-base.mk index 56e42ac97b45..b4d15667183a 100644 --- a/rules/docker-base.mk +++ b/rules/docker-base.mk @@ -3,4 +3,4 @@ DOCKER_BASE = docker-base.gz $(DOCKER_BASE)_PATH = $(DOCKERS_PATH)/docker-base -SONIC_SIMPLE_DOCKER_IMAGES += $(DOCKER_BASE) +SONIC_SQUASH_SIMPLE_DOCKER_IMAGES += $(DOCKER_BASE) diff --git a/slave.mk b/slave.mk index ee89df4b4c8b..35792a947e3c 100644 --- a/slave.mk +++ b/slave.mk @@ -239,6 +239,15 @@ $(SONIC_INSTALL_WHEELS) : $(PYTHON_WHEELS_PATH)/%-install : .platform $$(addsuff docker-start : @sudo service docker start &> /dev/null && sleep 1 +# targets for building squashed simple docker images that do not depend on any debian packages +$(addprefix $(TARGET_PATH)/, $(SONIC_SQUASH_SIMPLE_DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform docker-start $$(addsuffix -load,$$(addprefix $(TARGET_PATH)/,$$($$*.gz_LOAD_DOCKERS))) + $(HEADER) + docker build --no-cache -t $* $($*.gz_PATH) $(LOG) + docker run --name $*.squash -d $* /bin/bash + docker export $*.squash | docker import - $* + docker save $* | gzip -c > $@ + $(FOOTER) + # targets for building simple docker images that do not depend on any debian packages $(addprefix $(TARGET_PATH)/, $(SONIC_SIMPLE_DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform docker-start $$(addsuffix -load,$$(addprefix $(TARGET_PATH)/,$$($$*.gz_LOAD_DOCKERS))) $(HEADER) From 50377591d3f59a153ece8ec90d51aa1a59e8c941 Mon Sep 17 00:00:00 2001 From: Guohan Lu Date: Thu, 15 Dec 2016 18:01:10 +0000 Subject: [PATCH 2/2] add SONIC_SQUASH_SIMPLE_DOCKER_IMAGES to DOCKER_LOAD_TARGETS and SONIC_CLEAN_TARGETS --- slave.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/slave.mk b/slave.mk index 35792a947e3c..612361d151c8 100644 --- a/slave.mk +++ b/slave.mk @@ -269,6 +269,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .pl DOCKER_LOAD_TARGETS = $(addsuffix -load,$(addprefix $(TARGET_PATH)/, \ $(SONIC_SIMPLE_DOCKER_IMAGES) \ + $(SONIC_SQUASH_SIMPLE_DOCKER_IMAGES) \ $(SONIC_DOCKER_IMAGES))) $(DOCKER_LOAD_TARGETS) : $(TARGET_PATH)/%.gz-load : .platform docker-start $$(TARGET_PATH)/$$*.gz $(HEADER) @@ -306,7 +307,8 @@ $(SONIC_CLEAN_DEBS) : $(DEBS_PATH)/%-clean : .platform $$(addsuffix -clean,$$(ad SONIC_CLEAN_TARGETS += $(addsuffix -clean,$(addprefix $(TARGET_PATH)/, \ $(SONIC_DOCKER_IMAGES) \ - $(SONIC_SIMPLE_DOCKER_IMAGES))) + $(SONIC_SIMPLE_DOCKER_IMAGES) \ + $(SONIC_SQUASH_SIMPLE_DOCKER_IMAGES))) $(SONIC_CLEAN_TARGETS) : $(TARGET_PATH)/%-clean : .platform @rm -f $(TARGET_PATH)/$*