[dockers] label SONiC Docker with manifest (#5939)
Signed-off-by: Stepan Blyschak stepanb@nvidia.com This PR is part of SONiC Application Extension Depends on #5938 - Why I did it To provide an infrastructure change in order to support SONiC Application Extension feature. - How I did it Label every installable SONiC Docker with a minimal required manifest and auto-generate packages.json file based on installed SONiC images. - How to verify it Build an image, execute the following command: admin@sonic:~$ docker inspect docker-snmp:1.0.0 | jq '.[0].Config.Labels["com.azure.sonic.manifest"]' -r | jq Cat /var/lib/sonic-package-manager/packages.json file to verify all dockers are listed there.
This commit is contained in:
parent
27a635a15a
commit
cd2c86eab6
5
.gitignore
vendored
5
.gitignore
vendored
@ -20,6 +20,7 @@ target/
|
||||
*-dbg
|
||||
*dbg.j2
|
||||
*.img
|
||||
*.pyc
|
||||
|
||||
# Autogenerated Dockerfiles
|
||||
sonic-slave*/Dockerfile
|
||||
@ -27,6 +28,10 @@ sonic-slave*/Dockerfile.user
|
||||
dockers/*/Dockerfile
|
||||
platform/*/docker-*/Dockerfile
|
||||
|
||||
# Autogenerated manifest files
|
||||
dockers/*/*manifest*
|
||||
platform/*/docker-*/*manifest*
|
||||
|
||||
# Installer-related files and directories
|
||||
installer/x86_64/platforms/
|
||||
|
||||
|
26
files/build_templates/manifest.json.j2
Normal file
26
files/build_templates/manifest.json.j2
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"version": "1.0.0",
|
||||
"package": {
|
||||
"version": "{{ version }}",
|
||||
"depends": {{ depends.split()|json if depends is defined else []}},
|
||||
"name": "{{ package_name }}"
|
||||
},
|
||||
"service": {
|
||||
"name": "{{ name }}",
|
||||
"requires": {{ requires.split()|json if requires is defined else [] }},
|
||||
"after": {{ after.split()|json if after is defined else [] }},
|
||||
"before": {{ before.split()|json if before is defined else [] }},
|
||||
"dependent-of": {{ dependent_of.split()|json if dependent_of is defined else [] }},
|
||||
"asic-service": {{ asic_service }},
|
||||
"host-service": {{ host_service }}
|
||||
},
|
||||
"container": {
|
||||
"privileged": {{ privileged if privileged else 'false' }},
|
||||
"volumes": {{ volumes.split()|json if volumes is defined else [] }},
|
||||
"tmpfs": {{ tmpfs.split()|json if tmpfs is defined else [] }}
|
||||
},
|
||||
"cli": {
|
||||
"config": "{{ config_cli_plugin|default('') }}",
|
||||
"show": "{{ show_cli_plugin|default('') }}"
|
||||
}
|
||||
}
|
17
files/build_templates/packages.json.j2
Normal file
17
files/build_templates/packages.json.j2
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
{% for docker_installation_target in installer_images.strip().split() -%}
|
||||
{% set pkgname, docker_build_path, image = docker_installation_target.split('|') -%}
|
||||
{% set imagefilepath = image.split(':')|first -%}
|
||||
{% set imageversion = image.split(':')|last -%}
|
||||
{% set imagefilename = imagefilepath.split('/')|last -%}
|
||||
{% set imagename = imagefilename.split('.')|first -%}
|
||||
"{{ pkgname }}": {
|
||||
"repository": "{{ imagename }}",
|
||||
"description": "SONiC {{ pkgname }} package",
|
||||
"default-reference": "{{ imageversion }}",
|
||||
"installed-version": "{{ imageversion }}",
|
||||
"built-in": true,
|
||||
"installed": true
|
||||
}{% if not loop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
}
|
@ -618,11 +618,21 @@ sudo mount proc /proc -t proc
|
||||
sudo mkdir $FILESYSTEM_ROOT/target
|
||||
sudo mount --bind target $FILESYSTEM_ROOT/target
|
||||
sudo chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS info
|
||||
{% for image in installer_images.strip().split(' ') -%}
|
||||
{% set imagefilename = image.split('/')|last -%}
|
||||
|
||||
{% for docker_installation_target in installer_images.strip().split() -%}
|
||||
{% set pkgname, docker_build_path, image = docker_installation_target.split('|') %}
|
||||
{% set imagefilepath = image.split(':')|first -%}
|
||||
{% set imagefilename = imagefilepath.split('/')|last -%}
|
||||
{% set imagename = imagefilename.split('.')|first -%}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS load -i {{image}}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS load -i {{imagefilepath}}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS tag {{imagename}}:latest {{imagename}}:"${SONIC_IMAGE_VERSION}"
|
||||
# Check if manifest exists for {{imagename}} and it is a valid JSON
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS inspect {{imagename}}:latest \
|
||||
| jq '.[0].Config.Labels["com.azure.sonic.manifest"]' -r > /tmp/manifest.json
|
||||
jq -e . /tmp/manifest.json || {
|
||||
>&2 echo "docker image {{imagename}} has no manifest or manifest is not a valid JSON"
|
||||
exit 1
|
||||
}
|
||||
{% if imagename.endswith('-dbg') %}
|
||||
{% set imagebasename = imagename.replace('-dbg', '') -%}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS tag {{imagename}}:latest {{imagebasename}}:"${SONIC_IMAGE_VERSION}"
|
||||
@ -630,6 +640,10 @@ sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS ta
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
SONIC_PACKAGE_MANAGER_FOLDER="/var/lib/sonic-package-manager/"
|
||||
sudo mkdir -p $FILESYSTEM_ROOT/$SONIC_PACKAGE_MANAGER_FOLDER
|
||||
j2 $BUILD_TEMPLATES/packages.json.j2 | sudo tee $FILESYSTEM_ROOT/$SONIC_PACKAGE_MANAGER_FOLDER/packages.json
|
||||
|
||||
# Copy docker_image_ctl.j2 for SONiC Package Manager
|
||||
sudo cp $BUILD_TEMPLATES/docker_image_ctl.j2 $FILESYSTEM_ROOT_USR_SHARE_SONIC_TEMPLATES/docker_image_ctl.j2
|
||||
|
||||
|
@ -17,6 +17,8 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_BFN_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_BFN_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_BFN_RPC)_VERSION = 1.0.0-rpc
|
||||
$(DOCKER_SYNCD_BFN_RPC)_PACKAGE_NAME = syncd
|
||||
$(DOCKER_SYNCD_BFN_RPC)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_BFN_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_BFN_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -10,5 +10,10 @@ $(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \
|
||||
$(LIBSAIMETADATA_DBG) \
|
||||
$(LIBSAIREDIS_DBG)
|
||||
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_BASE_IMAGE_FILES += monit_syncd:/etc/monit/conf.d
|
||||
|
@ -1,5 +1,7 @@
|
||||
FROM docker-config-engine-buster
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
## Make apt-get non-interactive
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
|
@ -17,6 +17,8 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_BRCM_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_BRCM_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_BRCM_RPC)_VERSION = 1.0.0-rpc
|
||||
$(DOCKER_SYNCD_BRCM_RPC)_PACKAGE_NAME = syncd
|
||||
$(DOCKER_SYNCD_BRCM_RPC)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_SYNCD_BRCM_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_BRCM_RPC)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
|
@ -11,6 +11,9 @@ $(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \
|
||||
$(LIBSAIMETADATA_DBG) \
|
||||
$(LIBSAIREDIS_DBG)
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_BASE_IMAGE_FILES += bcmcmd:/usr/bin/bcmcmd
|
||||
|
@ -2,6 +2,7 @@
|
||||
FROM docker-config-engine-buster
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
|
@ -17,6 +17,8 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_CAVM_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_CAVM_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_CAVM_RPC)_VERSION = 1.0.0-rpc
|
||||
$(DOCKER_SYNCD_CAVM_RPC)_PACKAGE_NAME = syncd
|
||||
$(DOCKER_SYNCD_CAVM_RPC)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_CAVM_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_CAVM_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -16,6 +16,9 @@ ifneq ($(ENABLE_SYNCD_RPC),y)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_CAVM)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
|
||||
|
||||
$(DOCKER_SYNCD_CAVM)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_CAVM)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_CAVM)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
|
@ -1,6 +1,7 @@
|
||||
FROM docker-config-engine
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
|
@ -17,6 +17,8 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_CENTEC_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_CENTEC_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_CENTEC_RPC)_VERSION = 1.0.0-rpc
|
||||
$(DOCKER_SYNCD_CENTEC_RPC)_PACKAGE_NAME = syncd
|
||||
$(DOCKER_SYNCD_CENTEC_RPC)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_SYNCD_CENTEC_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_CENTEC_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -10,6 +10,9 @@ $(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \
|
||||
$(LIBSAIMETADATA_DBG) \
|
||||
$(LIBSAIREDIS_DBG)
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
$(DOCKER_SYNCD_CENTEC)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_SYNCD_CENTEC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
|
@ -1,6 +1,7 @@
|
||||
FROM docker-config-engine-buster
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
|
@ -17,6 +17,8 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_CENTEC_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_CENTEC_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_CENTEC_RPC)_VERSION = 1.0.0-rpc
|
||||
$(DOCKER_SYNCD_CENTEC_RPC)_PACKAGE_NAME = syncd
|
||||
$(DOCKER_SYNCD_CENTEC_RPC)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_SYNCD_CENTEC_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_CENTEC_RPC)_RUN_OPT += -v /var/run/docker-syncd:/var/run/sswsyncd
|
||||
|
@ -10,6 +10,9 @@ $(DOCKER_SYNCD_CENTEC)_DEPENDS += $(SYNCD_DBG) \
|
||||
$(LIBSAIMETADATA_DBG) \
|
||||
$(LIBSAIREDIS_DBG)
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
|
||||
|
||||
$(DOCKER_SYNCD_CENTEC)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_SYNCD_CENTEC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_CENTEC)_RUN_OPT += -v /var/run/docker-syncd:/var/run/sswsyncd
|
||||
|
@ -1,6 +1,7 @@
|
||||
FROM docker-config-engine-buster
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
|
@ -10,6 +10,8 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_INVM_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_INVM_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_INVM_RPC)_VERSION = 1.0.0-rpc
|
||||
$(DOCKER_SYNCD_INVM_RPC)_PACKAGE_NAME = syncd
|
||||
$(DOCKER_SYNCD_INVM_RPC)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_INVM_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_INVM_RPC)_RUN_OPT += -v /var/run/docker-syncd:/var/run/sswsyncd
|
||||
|
@ -13,4 +13,7 @@ $(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \
|
||||
SONIC_STRETCH_DOCKERS += $(DOCKER_SYNCD_BASE)
|
||||
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_SYNCD_BASE_DBG)
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
|
@ -1,6 +1,7 @@
|
||||
FROM docker-config-engine-stretch
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
|
@ -18,6 +18,8 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_VERSION = 1.0.0-rpc
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_PACKAGE_NAME = syncd
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -13,5 +13,8 @@ $(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \
|
||||
SONIC_STRETCH_DOCKERS += $(DOCKER_SYNCD_BASE)
|
||||
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_SYNCD_BASE_DBG)
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
$(DOCKER_SYNCD_BASE)_BASE_IMAGE_FILES += monit_syncd:/etc/monit/conf.d
|
||||
|
@ -1,6 +1,7 @@
|
||||
FROM docker-config-engine-stretch
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
|
@ -17,6 +17,8 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_VERSION = 1.0.0-rpc
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_PACKAGE_NAME = syncd
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -10,5 +10,8 @@ $(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \
|
||||
$(LIBSAIMETADATA_DBG) \
|
||||
$(LIBSAIREDIS_DBG)
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
|
||||
|
||||
#$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
$(DOCKER_SYNCD_BASE)_BASE_IMAGE_FILES += monit_syncd:/etc/monit/conf.d
|
||||
|
@ -2,6 +2,7 @@
|
||||
FROM docker-config-engine-buster
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
|
@ -18,6 +18,8 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_VERSION = 1.0.0-rpc
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_PACKAGE_NAME = syncd
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -13,6 +13,9 @@ $(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \
|
||||
SONIC_STRETCH_DOCKERS += $(DOCKER_SYNCD_BASE)
|
||||
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_SYNCD_BASE_DBG)
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /var/run/docker-syncd:/var/run/sswsyncd
|
||||
$(DOCKER_SYNCD_BASE)_BASE_IMAGE_FILES += monit_syncd:/etc/monit/conf.d
|
||||
|
@ -1,6 +1,7 @@
|
||||
FROM docker-config-engine-stretch
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
|
@ -20,6 +20,8 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_MLNX_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_MLNX_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_MLNX_RPC)_VERSION = 1.0.0-rpc
|
||||
$(DOCKER_SYNCD_MLNX_RPC)_PACKAGE_NAME = syncd
|
||||
$(DOCKER_SYNCD_MLNX_RPC)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_SYNCD_MLNX_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_MLNX_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -14,5 +14,8 @@ ifeq ($(SDK_FROM_SRC), y)
|
||||
$(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(MLNX_SDK_DBG_DEBS) $(MLNX_SAI_DBGSYM)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
$(DOCKER_SYNCD_BASE)_BASE_IMAGE_FILES += monit_syncd:/etc/monit/conf.d
|
||||
|
@ -2,6 +2,7 @@
|
||||
FROM docker-config-engine-buster
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
RUN mkdir -p /var/run/sx_sdk
|
||||
|
@ -18,6 +18,8 @@ SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_NEPHOS_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_NEPHOS_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_NEPHOS_RPC)_VERSION = 1.0.0-rpc
|
||||
$(DOCKER_SYNCD_NEPHOS_RPC)_PACKAGE_NAME = syncd
|
||||
$(DOCKER_SYNCD_NEPHOS_RPC)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_NEPHOS_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_NEPHOS_RPC)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
|
@ -10,10 +10,13 @@ $(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \
|
||||
$(LIBSWSSCOMMON_DBG) \
|
||||
$(LIBSAIMETADATA_DBG) \
|
||||
$(LIBSAIREDIS_DBG)
|
||||
|
||||
|
||||
SONIC_STRETCH_DOCKERS += $(DOCKER_SYNCD_BASE)
|
||||
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_SYNCD_BASE_DBG)
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /var/run/docker-syncd:/var/run/sswsyncd
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
FROM docker-config-engine-stretch
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
|
@ -11,4 +11,7 @@ $(DOCKER_GBSYNCD_BASE)_DBG_DEPENDS += $(SYNCD_VS_DBG) \
|
||||
$(LIBSAIREDIS_DBG) \
|
||||
$(LIBSAIVS_DBG)
|
||||
|
||||
$(DOCKER_GBSYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_GBSYNCD_BASE)_PACKAGE_NAME = gbsyncd
|
||||
|
||||
$(DOCKER_GBSYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
|
@ -1,6 +1,7 @@
|
||||
FROM docker-config-engine-buster
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
|
@ -11,4 +11,7 @@ $(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_VS_DBG) \
|
||||
$(LIBSAIREDIS_DBG) \
|
||||
$(LIBSAIVS_DBG)
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
|
||||
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
|
@ -1,6 +1,7 @@
|
||||
FROM docker-config-engine-buster
|
||||
|
||||
ARG docker_container_name
|
||||
|
||||
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
|
||||
|
||||
## Make apt-get non-interactive
|
||||
|
@ -12,6 +12,9 @@ $(DOCKER_DATABASE)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMA
|
||||
|
||||
$(DOCKER_DATABASE)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_DATABASE)_VERSION = 1.0.0
|
||||
$(DOCKER_DATABASE)_PACKAGE_NAME = database
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_DATABASE)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_DATABASE)
|
||||
|
||||
|
@ -15,6 +15,9 @@ $(DOCKER_DHCP_RELAY)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_I
|
||||
|
||||
$(DOCKER_DHCP_RELAY)_LOAD_DOCKERS = $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_DHCP_RELAY)_VERSION = 1.0.0
|
||||
$(DOCKER_DHCP_RELAY)_PACKAGE_NAME = dhcp-relay
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_DHCP_RELAY)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_DHCP_RELAY)
|
||||
|
||||
|
@ -16,6 +16,9 @@ $(DOCKER_FPM_FRR)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAG
|
||||
|
||||
$(DOCKER_FPM_FRR)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_FPM_FRR)_VERSION = 1.0.0
|
||||
$(DOCKER_FPM_FRR)_PACKAGE_NAME = fpm-frr
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_FPM_FRR)
|
||||
|
||||
SONIC_DOCKER_DBG_IMAGES += $(DOCKER_FPM_FRR_DBG)
|
||||
|
@ -4,6 +4,10 @@ DOCKER_FPM_GOBGP = docker-fpm-gobgp.gz
|
||||
$(DOCKER_FPM_GOBGP)_PATH = $(DOCKERS_PATH)/docker-fpm-gobgp
|
||||
$(DOCKER_FPM_GOBGP)_DEPENDS += $(GOBGP)
|
||||
$(DOCKER_FPM_GOBGP)_LOAD_DOCKERS += $(DOCKER_FPM_QUAGGA)
|
||||
|
||||
$(DOCKER_FPM_GOBGP)_VERSION = 1.0.0
|
||||
$(DOCKER_FPM_GOBGP)_PACKAGE_NAME = fpm-gobgp
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_FPM_GOBGP)
|
||||
|
||||
$(DOCKER_FPM_GOBGP)_CONTAINER_NAME = bgp
|
||||
|
@ -4,6 +4,10 @@ DOCKER_FPM_QUAGGA = docker-fpm-quagga.gz
|
||||
$(DOCKER_FPM_QUAGGA)_PATH = $(DOCKERS_PATH)/docker-fpm-quagga
|
||||
$(DOCKER_FPM_QUAGGA)_DEPENDS += $(QUAGGA) $(SWSS)
|
||||
$(DOCKER_FPM_QUAGGA)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE)
|
||||
|
||||
$(DOCKER_FPM_QUAGGA)_VERSION = 1.0.0
|
||||
$(DOCKER_FPM_QUAGGA)_PACKAGE_NAME = fpm-quagga
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_FPM_QUAGGA)
|
||||
|
||||
$(DOCKER_FPM_QUAGGA)_CONTAINER_NAME = bgp
|
||||
|
@ -10,6 +10,9 @@ $(DOCKER_ICCPD)_DBG_DEPENDS += $(SWSS_DBG) $(LIBSWSSCOMMON_DBG) $(ICCPD_DBG)
|
||||
$(DOCKER_ICCPD)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES)
|
||||
$(DOCKER_ICCPD)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_ICCPD)_VERSION = 1.0.0
|
||||
$(DOCKER_ICCPD)_ICCPD = iccpd
|
||||
|
||||
ifeq ($(INCLUDE_ICCPD), y)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_ICCPD)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_ICCPD)
|
||||
|
@ -16,6 +16,9 @@ $(DOCKER_LLDP)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_P
|
||||
$(DOCKER_LLDP)_PYTHON_WHEELS += $(DBSYNCD_PY3)
|
||||
$(DOCKER_LLDP)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_LLDP)_VERSION = 1.0.0
|
||||
$(DOCKER_LLDP)_PACKAGE_NAME = lldp
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_LLDP)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_LLDP)
|
||||
|
||||
|
@ -26,6 +26,8 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_MACSEC_DBG)
|
||||
endif
|
||||
|
||||
$(DOCKER_MACSEC)_CONTAINER_NAME = macsec
|
||||
$(DOCKER_MACSEC)_VERSION = 1.0.0
|
||||
$(DOCKER_MACSEC)_PACKAGE_NAME = macsec
|
||||
$(DOCKER_MACSEC)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_MACSEC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
$(DOCKER_MACSEC)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
|
@ -13,6 +13,9 @@ $(DOCKER_NAT)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PA
|
||||
|
||||
$(DOCKER_NAT)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_NAT)_VERSION = 1.0.0
|
||||
$(DOCKER_NAT)_PACKAGE_NAME = nat
|
||||
|
||||
ifeq ($(INCLUDE_NAT), y)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_NAT)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_NAT)
|
||||
|
@ -17,6 +17,9 @@ $(DOCKER_ORCHAGENT)_PATH = $(DOCKERS_PATH)/$(DOCKER_ORCHAGENT_STEM)
|
||||
|
||||
$(DOCKER_ORCHAGENT)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_ORCHAGENT)_VERSION = 1.0.0
|
||||
$(DOCKER_ORCHAGENT)_PACKAGE_NAME = swss
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_ORCHAGENT)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_ORCHAGENT)
|
||||
|
||||
|
@ -44,6 +44,9 @@ $(DOCKER_PLATFORM_MONITOR)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_PLATFORM_MONITOR)_LOAD_DOCKERS = $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_PLATFORM_MONITOR)_VERSION = 1.0.0
|
||||
$(DOCKER_PLATFORM_MONITOR)_PACKAGE_NAME = pmon
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_PLATFORM_MONITOR)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_PLATFORM_MONITOR)
|
||||
|
||||
|
@ -10,6 +10,9 @@ $(DOCKER_RESTAPI)_PATH = $(DOCKERS_PATH)/$(DOCKER_RESTAPI_STEM)
|
||||
|
||||
$(DOCKER_RESTAPI)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_STRETCH)
|
||||
|
||||
$(DOCKER_RESTAPI)_VERSION = 1.0.0
|
||||
$(DOCKER_RESTAPI)_PACKAGE_NAME = restapi
|
||||
|
||||
ifeq ($(INCLUDE_RESTAPI), y)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_RESTAPI)
|
||||
SONIC_STRETCH_DOCKERS += $(DOCKER_RESTAPI)
|
||||
|
@ -13,6 +13,9 @@ $(DOCKER_ROUTER_ADVERTISER)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER
|
||||
|
||||
$(DOCKER_ROUTER_ADVERTISER)_LOAD_DOCKERS = $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_ROUTER_ADVERTISER)_VERSION = 1.0.0
|
||||
$(DOCKER_ROUTER_ADVERTISER)_PACKAGE_NAME = radv
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_ROUTER_ADVERTISER)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_ROUTER_ADVERTISER)
|
||||
|
||||
|
@ -13,6 +13,9 @@ $(DOCKER_SFLOW)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_
|
||||
|
||||
$(DOCKER_SFLOW)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_SFLOW)_VERSION = 1.0.0
|
||||
$(DOCKER_SFLOW)_PACKAGE_NAME = sflow
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_SFLOW)
|
||||
ifeq ($(INCLUDE_SFLOW), y)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SFLOW)
|
||||
|
@ -17,6 +17,9 @@ $(DOCKER_SNMP)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_P
|
||||
$(DOCKER_SNMP)_PYTHON_WHEELS += $(SONIC_PY_COMMON_PY3) $(SONIC_PLATFORM_COMMON_PY3) $(SWSSSDK_PY3) $(ASYNCSNMP_PY3)
|
||||
$(DOCKER_SNMP)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_SNMP)_VERSION = 1.0.0
|
||||
$(DOCKER_SNMP)_PACKAGE_NAME = snmp
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_SNMP)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SNMP)
|
||||
|
||||
|
@ -13,6 +13,10 @@ $(DOCKER_MGMT_FRAMEWORK)_DBG_DEPENDS += $(SONIC_MGMT_FRAMEWORK_DBG)
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_MGMT_FRAMEWORK)
|
||||
$(DOCKER_MGMT_FRAMEWORK)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_MGMT_FRAMEWORK)_VERSION = 1.0.0
|
||||
$(DOCKER_MGMT_FRAMEWORK)_PACKAGE_NAME = mgmt-framework
|
||||
|
||||
$(DOCKER_MGMT_FRAMEWORK)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES)
|
||||
|
||||
ifeq ($(INCLUDE_MGMT_FRAMEWORK), y)
|
||||
|
@ -15,6 +15,9 @@ $(DOCKER_TEAMD)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_
|
||||
|
||||
$(DOCKER_TEAMD)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_TEAMD)_VERSION = 1.0.0
|
||||
$(DOCKER_TEAMD)_PACKAGE_NAME = teamd
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_TEAMD)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_TEAMD)
|
||||
|
||||
|
@ -11,6 +11,10 @@ $(DOCKER_TELEMETRY)_DEPENDS += $(SONIC_TELEMETRY)
|
||||
$(DOCKER_TELEMETRY)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_DEPENDS)
|
||||
|
||||
$(DOCKER_TELEMETRY)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BUSTER)
|
||||
|
||||
$(DOCKER_TELEMETRY)_VERSION = 1.0.0
|
||||
$(DOCKER_TELEMETRY)_PACKAGE_NAME = telemetry
|
||||
|
||||
$(DOCKER_TELEMETRY)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BUSTER)_DBG_IMAGE_PACKAGES)
|
||||
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_TELEMETRY)
|
||||
|
@ -166,3 +166,36 @@ sudo mount -t overlay overlay -olowerdir=/var/lib/dpkg,upperdir=$$upperdir,workd
|
||||
export SONIC_DPKG_ADMINDIR=$$mergedir
|
||||
trap "sudo umount $$mergedir && rm -rf $$mergedir $$upperdir $$workdir" EXIT
|
||||
endef
|
||||
|
||||
|
||||
###############################################################################
|
||||
## Manifest generation routine
|
||||
## TODO: changelog generation
|
||||
###############################################################################
|
||||
# call:
|
||||
# generate_manifest some_docker.gz, version_suffix
|
||||
define generate_manifest
|
||||
$(eval export version=$($(1).gz_VERSION)$(2))
|
||||
$(eval export name=$($(1).gz_CONTAINER_NAME))
|
||||
$(eval export package_name=$($(1).gz_PACKAGE_NAME))
|
||||
$(eval export asic_service=$(shell [ -f files/build_templates/per_namespace/$(name).service.j2 ] && echo true || echo false))
|
||||
$(eval export host_service=$(shell [ -f files/build_templates/$(name).service.j2 ] && echo true || echo false))
|
||||
$(eval export depends=$($(1).gz_PACKAGE_DEPENDS))
|
||||
$(eval export requires=$($(1).gz_SERVICE_REQUIRES))
|
||||
$(eval export after=$($(1).gz_SERVICE_AFTER))
|
||||
$(eval export before=$($(1).gz_SERVICE_BEFORE))
|
||||
$(eval export dependent_of=$($(1).gz_SERVICE_DEPENDENT_OF))
|
||||
$(eval export privileged=$($(1).gz_CONTAINER_PRIVILEGED))
|
||||
$(eval export volumes=$($(1).gz_CONTAINER_VOLUMES))
|
||||
$(eval export tmpfs=$($(1).gz_CONTAINER_TMPFS))
|
||||
$(eval export config_cli_plugin=$($(1).gz_CLI_CONFIG_PLUGIN))
|
||||
$(eval export show_cli_plugin=$($(1).gz_CLI_SHOW_PLUGIN))
|
||||
j2 $($*.gz_PATH)/Dockerfile.j2 > $($(1).gz_PATH)/Dockerfile
|
||||
j2 --customize scripts/j2cli/json_filter.py files/build_templates/manifest.json.j2 > $($(1).gz_PATH)/manifest.common.json
|
||||
if [ -f $($*.gz_PATH)/manifest.part.json.j2 ]; then
|
||||
j2 --customize scripts/j2cli/json_filter.py $($(1).gz_PATH)/manifest.part.json.j2 > $($(1).gz_PATH)/manifest.part.json
|
||||
jq -s '.[0] * .[1]' $($(1).gz_PATH)/manifest.common.json $($(1).gz_PATH)/manifest.part.json > $($(1).gz_PATH)/manifest.json
|
||||
else
|
||||
mv $($(1).gz_PATH)/manifest.common.json $($(1).gz_PATH)/manifest.json
|
||||
fi
|
||||
endef
|
||||
|
12
scripts/j2cli/json_filter.py
Normal file
12
scripts/j2cli/json_filter.py
Normal file
@ -0,0 +1,12 @@
|
||||
import json
|
||||
|
||||
|
||||
def extra_filters():
|
||||
""" Declare some custom filters.
|
||||
|
||||
Returns: dict(name = function)
|
||||
"""
|
||||
return dict(
|
||||
json=json.dumps,
|
||||
)
|
||||
|
9
slave.mk
9
slave.mk
@ -748,6 +748,7 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform
|
||||
$(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)))_pkgs=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_APT_PACKAGES)))\n" | awk '!a[$$0]++'))
|
||||
j2 $($*.gz_PATH)/Dockerfile.j2 > $($*.gz_PATH)/Dockerfile
|
||||
$(call generate_manifest,$*)
|
||||
# Prepare docker build info
|
||||
PACKAGE_URL_PREFIX=$(PACKAGE_URL_PREFIX) \
|
||||
SONIC_ENFORCE_VERSIONS=$(SONIC_ENFORCE_VERSIONS) \
|
||||
@ -765,6 +766,7 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform
|
||||
--build-arg frr_user_uid=$(FRR_USER_UID) \
|
||||
--build-arg frr_user_gid=$(FRR_USER_GID) \
|
||||
--build-arg image_version=$(SONIC_IMAGE_VERSION) \
|
||||
--label com.azure.sonic.manifest="$$(cat $($*.gz_PATH)/manifest.json)" \
|
||||
--label Tag=$(SONIC_IMAGE_VERSION) \
|
||||
-t $* $($*.gz_PATH) $(LOG)
|
||||
scripts/collect_docker_version_files.sh $* $(TARGET_PATH)
|
||||
@ -801,6 +803,7 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_DBG_IMAGES)) : $(TARGET_PATH)/%-$(DBG_IMAG
|
||||
$(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_dbg_pkgs=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_DBG_APT_PACKAGES),RDEPENDS))\n" | awk '!a[$$0]++'))
|
||||
./build_debug_docker_j2.sh $* $(subst -,_,$(notdir $($*.gz_PATH)))_dbg_debs $(subst -,_,$(notdir $($*.gz_PATH)))_image_dbgs > $($*.gz_PATH)/Dockerfile-dbg.j2
|
||||
j2 $($*.gz_PATH)/Dockerfile-dbg.j2 > $($*.gz_PATH)/Dockerfile-dbg
|
||||
$(call generate_manifest,$*,-dbg)
|
||||
# Prepare docker build info
|
||||
PACKAGE_URL_PREFIX=$(PACKAGE_URL_PREFIX) \
|
||||
SONIC_ENFORCE_VERSIONS=$(SONIC_ENFORCE_VERSIONS) \
|
||||
@ -813,6 +816,7 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_DBG_IMAGES)) : $(TARGET_PATH)/%-$(DBG_IMAG
|
||||
--build-arg http_proxy=$(HTTP_PROXY) \
|
||||
--build-arg no_proxy=$(NO_PROXY) \
|
||||
--build-arg docker_container_name=$($*.gz_CONTAINER_NAME) \
|
||||
--label com.azure.sonic.manifest="$$(cat $($*.gz_PATH)/manifest.json)" \
|
||||
--label Tag=$(SONIC_IMAGE_VERSION) \
|
||||
--file $($*.gz_PATH)/Dockerfile-dbg \
|
||||
-t $*-dbg $($*.gz_PATH) $(LOG)
|
||||
@ -917,7 +921,10 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \
|
||||
export enable_pfcwd_on_start="$(ENABLE_PFCWD_ON_START)"
|
||||
export installer_debs="$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$($*_INSTALLS))"
|
||||
export lazy_installer_debs="$(foreach deb, $($*_LAZY_INSTALLS),$(foreach device, $($(deb)_PLATFORM),$(addprefix $(device)@, $(IMAGE_DISTRO_DEBS_PATH)/$(deb))))"
|
||||
export installer_images="$(addprefix $(TARGET_PATH)/,$($*_DOCKERS))"
|
||||
export installer_images="$(foreach docker, $($*_DOCKERS),\
|
||||
$(addprefix $($(docker)_PACKAGE_NAME)|,\
|
||||
$(addprefix $($(docker)_PATH)|,\
|
||||
$(addprefix $(TARGET_PATH)/,$(addsuffix :$($(docker)_VERSION),$(docker))))))"
|
||||
export sonic_py_common_py2_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PY_COMMON_PY2))"
|
||||
export sonic_py_common_py3_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_PY_COMMON_PY3))"
|
||||
export config_engine_py2_wheel_path="$(addprefix $(PYTHON_WHEELS_PATH)/,$(SONIC_CONFIG_ENGINE_PY2))"
|
||||
|
@ -77,6 +77,7 @@ RUN apt-get update && apt-get install -y \
|
||||
dh-systemd \
|
||||
libzmq5 \
|
||||
libzmq3-dev \
|
||||
jq \
|
||||
# For quagga build
|
||||
libreadline-dev \
|
||||
texlive-latex-base \
|
||||
|
@ -63,6 +63,7 @@ RUN apt-get update && apt-get install -y \
|
||||
perl-modules \
|
||||
libswitch-perl \
|
||||
dh-systemd \
|
||||
jq \
|
||||
# For quagga build
|
||||
libreadline-dev \
|
||||
texlive-latex-base \
|
||||
|
@ -76,6 +76,7 @@ RUN apt-get update && apt-get install -y \
|
||||
dh-systemd \
|
||||
libzmq5 \
|
||||
libzmq3-dev \
|
||||
jq \
|
||||
# For quagga build
|
||||
libreadline-dev \
|
||||
texlive-latex-base \
|
||||
|
Loading…
Reference in New Issue
Block a user