From dad4318a7233b7a330211474d9f4429fbe09a4ee Mon Sep 17 00:00:00 2001 From: Anton Patenko Date: Wed, 1 Feb 2017 15:31:37 +0200 Subject: [PATCH 1/2] [docker-base] Enabled common debug packages installation. --- .gitignore | 1 + dockers/docker-base/{Dockerfile => Dockerfile.j2} | 15 +++++++++------ rules/config | 3 +++ rules/docker-base.mk | 10 +++++++++- slave.mk | 1 + 5 files changed, 23 insertions(+), 7 deletions(-) rename dockers/docker-base/{Dockerfile => Dockerfile.j2} (83%) diff --git a/.gitignore b/.gitignore index ee80cf8d6c5..96a073d67fc 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,5 @@ dockers/docker-snmp-sv2/Dockerfile dockers/docker-team/Dockerfile dockers/docker-teamd/Dockerfile dockers/docker-config-engine/Dockerfile +dockers/docker-base/Dockerfile platform/broadcom/docker-syncd-brcm/Dockerfile diff --git a/dockers/docker-base/Dockerfile b/dockers/docker-base/Dockerfile.j2 similarity index 83% rename from dockers/docker-base/Dockerfile rename to dockers/docker-base/Dockerfile.j2 index 59af1f3ac6a..7fe5047615f 100644 --- a/dockers/docker-base/Dockerfile +++ b/dockers/docker-base/Dockerfile.j2 @@ -36,9 +36,12 @@ RUN apt-get -y purge \ exim4-config \ exim4-daemon-light -## Clean up apt -## Remove /var/lib/apt/lists/*, could be obsoleted for derived images -RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y; \ - rm -rf /var/lib/apt/lists/*; \ - rm -rf /tmp/*; - +{% if docker_base_dbgs %} +## Install common debug-packages +RUN apt-get -y install \ +{% for dbg_pkg in docker_base_dbgs.split(' ') -%} + {{ dbg_pkg }}{{' '}} +{%- endfor %} +{% endif %} + +RUN rm -rf /tmp/* diff --git a/rules/config b/rules/config index ea4f32de148..be8b7a9d77f 100644 --- a/rules/config +++ b/rules/config @@ -42,3 +42,6 @@ PASSWORD = YourPaSsWoRd # If not set (default behavior) the default minigraph built into the image will be used. # ENABLE_DHCP_GRAPH_SERVICE = y +# SONIC_CONFIG_DEBUG - install debug packages +# Uncomment next line to enable: +# SONIC_CONFIG_DEBUG = y diff --git a/rules/docker-base.mk b/rules/docker-base.mk index 56e42ac97b4..f041f7d05cd 100644 --- a/rules/docker-base.mk +++ b/rules/docker-base.mk @@ -3,4 +3,12 @@ DOCKER_BASE = docker-base.gz $(DOCKER_BASE)_PATH = $(DOCKERS_PATH)/docker-base -SONIC_SIMPLE_DOCKER_IMAGES += $(DOCKER_BASE) +ifeq ($(SONIC_CONFIG_DEBUG),y) +GDB = gdb +VIM = vim +OPENSSH = openssh-client +SSHPASS = sshpass +$(DOCKER_BASE)_DBG_PACKAGES += $(GDB) $(VIM) $(OPENSSH) $(SSHPASS) +endif + +SONIC_DOCKER_IMAGES += $(DOCKER_BASE) diff --git a/slave.mk b/slave.mk index 4ea96d1f4c8..2484e323c19 100644 --- a/slave.mk +++ b/slave.mk @@ -267,6 +267,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .pl sudo mount --bind $(PYTHON_WHEELS_PATH) $($*.gz_PATH)/python-wheels $(LOG) # Export variables for j2. Use path for unique variable names, e.g. docker_orchagent_debs $(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_debs=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_DEPENDS),RDEPENDS))\n" | awk '!a[$$0]++')) + $(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_dbgs=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_DBG_PACKAGES)))\n" | awk '!a[$$0]++')) j2 $($*.gz_PATH)/Dockerfile.j2 > $($*.gz_PATH)/Dockerfile docker build --squash --no-cache -t $* $($*.gz_PATH) $(LOG) docker save $* | gzip -c > $@ From 2f7460b91a0cc27e74222699dd11869817147b73 Mon Sep 17 00:00:00 2001 From: Anton Patenko Date: Mon, 20 Feb 2017 12:32:31 +0200 Subject: [PATCH 2/2] [docker-base] Debug packages: fix to Dockerfile.j2. --- dockers/docker-base/Dockerfile.j2 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dockers/docker-base/Dockerfile.j2 b/dockers/docker-base/Dockerfile.j2 index 7fe5047615f..5bdbf8b3d5a 100644 --- a/dockers/docker-base/Dockerfile.j2 +++ b/dockers/docker-base/Dockerfile.j2 @@ -44,4 +44,8 @@ RUN apt-get -y install \ {%- endfor %} {% endif %} -RUN rm -rf /tmp/* +## Clean up apt +## Remove /var/lib/apt/lists/*, could be obsoleted for derived images +RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y; \ + rm -rf /var/lib/apt/lists/*; \ + rm -rf /tmp/*;