[sonic-mgmt]: move sonic-mgmt docker build into sonic-slave (#819)

need to install sonic-device-data into sonic-mgmt docker
This commit is contained in:
lguohan 2017-07-19 08:10:45 -07:00 committed by GitHub
parent c075033bb6
commit 3fd2014e93
6 changed files with 26 additions and 21 deletions

1
.gitignore vendored
View File

@ -47,6 +47,7 @@ dockers/docker-orchagent/Dockerfile
dockers/docker-platform-monitor/Dockerfile dockers/docker-platform-monitor/Dockerfile
dockers/docker-snmp-sv2/Dockerfile dockers/docker-snmp-sv2/Dockerfile
dockers/docker-teamd/Dockerfile dockers/docker-teamd/Dockerfile
dockers/docker-sonic-mgmt/Dockerfile
platform/*/docker-syncd-*/Dockerfile platform/*/docker-syncd-*/Dockerfile
platform/*/docker-syncd-*-rpc/Dockerfile platform/*/docker-syncd-*-rpc/Dockerfile

View File

@ -25,21 +25,7 @@ DOCKER_BUILD = docker build --no-cache \
sonic-slave && \ sonic-slave && \
docker tag $(SLAVE_IMAGE):latest $(SLAVE_IMAGE):$(SLAVE_TAG) docker tag $(SLAVE_IMAGE):latest $(SLAVE_IMAGE):$(SLAVE_TAG)
.PHONY: sonic-slave-build sonic-slave-bash
MGMT_TAG = $(shell shasum sonic-mgmt/Dockerfile | awk '{print substr($$1,0,11);}')
MGMT_IMAGE = sonic-mgmt-$(USER)
DOCKER_MGMT_BUILD = docker build --no-cache \
--build-arg user=$(USER) \
--build-arg uid=$(shell id -u) \
--build-arg guid=$(shell id -g) \
--build-arg hostname=$(shell echo $$HOSTNAME) \
-t $(MGMT_IMAGE) \
sonic-mgmt && \
docker tag $(MGMT_IMAGE):latest $(MGMT_IMAGE):$(MGMT_TAG)
.PHONY: sonic-slave-build sonic-slave-bash sonic-mgmt-build
.DEFAULT_GOAL := all .DEFAULT_GOAL := all
@ -67,6 +53,3 @@ sonic-slave-bash :
{ echo Image $(SLAVE_IMAGE):$(SLAVE_TAG) not found. Building... ; \ { echo Image $(SLAVE_IMAGE):$(SLAVE_TAG) not found. Building... ; \
$(DOCKER_BUILD) ; } $(DOCKER_BUILD) ; }
@$(DOCKER_RUN) -t $(SLAVE_IMAGE):$(SLAVE_TAG) bash @$(DOCKER_RUN) -t $(SLAVE_IMAGE):$(SLAVE_TAG) bash
sonic-mgmt-build :
@$(DOCKER_MGMT_BUILD)

View File

@ -20,7 +20,7 @@ RUN apt-get install -y \
libxslt1-dev \ libxslt1-dev \
python-setuptools python-setuptools
# For JNLP launcher # For JNLP launcher
RUN apt-get install -y default-jre RUN apt-get install -y default-jre
# For syslog test # For syslog test
@ -44,6 +44,19 @@ RUN pip install ipaddr \
paramiko==2.1.2 \ paramiko==2.1.2 \
adal adal
## Copy and install sonic-mgmt docker dependencies
COPY \
{% for deb in docker_sonic_mgmt_debs.split(' ') -%}
debs/{{ deb }}{{' '}}
{%- endfor -%}
debs/
RUN dpkg -i \
{% for deb in docker_sonic_mgmt_debs.split(' ') -%}
debs/{{ deb }}{{' '}}
{%- endfor %}
RUN git clone https://github.com/ansible/ansible RUN git clone https://github.com/ansible/ansible
RUN cd ansible && git checkout v2.0.0.2-1 -b v2.0.0.2-1 && git submodule update --init --recursive && make && make install RUN cd ansible && git checkout v2.0.0.2-1 -b v2.0.0.2-1 && git submodule update --init --recursive && make && make install

View File

@ -0,0 +1,5 @@
# docker image for sonic-mgmt
DOCKER_SONIC_MGMT = docker-sonic-mgmt.gz
$(DOCKER_SONIC_MGMT)_PATH = $(DOCKERS_PATH)/docker-sonic-mgmt
$(DOCKER_SONIC_MGMT)_DEPENDS += $(SONIC_DEVICE_DATA)
SONIC_DOCKER_IMAGES += $(DOCKER_SONIC_MGMT)

View File

@ -6,6 +6,9 @@
.ONESHELL: .ONESHELL:
SHELL = /bin/bash SHELL = /bin/bash
.SHELLFLAGS += -e .SHELLFLAGS += -e
USER = $(shell id -un)
UID = $(shell id -u)
GUID = $(shell id -g)
.SECONDEXPANSION: .SECONDEXPANSION:
@ -297,7 +300,7 @@ docker-start :
# targets for building simple docker images that do not depend on any debian packages # 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))) $(addprefix $(TARGET_PATH)/, $(SONIC_SIMPLE_DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform docker-start $$(addsuffix -load,$$(addprefix $(TARGET_PATH)/,$$($$*.gz_LOAD_DOCKERS)))
$(HEADER) $(HEADER)
docker build --squash --no-cache -t $* $($*.gz_PATH) $(LOG) docker build --squash --no-cache --build-arg user=$(USER) --build-arg uid=$(UID) --build-arg guid=$(GUID) -t $* $($*.gz_PATH) $(LOG)
docker save $* | gzip -c > $@ docker save $* | gzip -c > $@
$(FOOTER) $(FOOTER)
@ -313,7 +316,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .pl
$(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_whls=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_PYTHON_WHEELS)))\n" | awk '!a[$$0]++')) $(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_whls=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_PYTHON_WHEELS)))\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]++')) $(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 j2 $($*.gz_PATH)/Dockerfile.j2 > $($*.gz_PATH)/Dockerfile
docker build --squash --no-cache -t $* $($*.gz_PATH) $(LOG) docker build --squash --no-cache --build-arg user=$(USER) --build-arg uid=$(UID) --build-arg guid=$(GUID) -t $* $($*.gz_PATH) $(LOG)
docker save $* | gzip -c > $@ docker save $* | gzip -c > $@
$(FOOTER) $(FOOTER)