Skip to content

Commit 54f80a6

Browse files
Add a config variable to override default container registry instead of dockerhub. (#10166) (#10260)
* Add variable to reset default docker registry * fix bug in docker version control
1 parent ab7d651 commit 54f80a6

File tree

13 files changed

+54
-32
lines changed

13 files changed

+54
-32
lines changed

Makefile.work

+7-2
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ rules/config.user:
115115
include rules/config
116116
-include rules/config.user
117117

118+
ifneq ($(DEFAULT_CONTAINER_REGISTRY),)
119+
override DEFAULT_CONTAINER_REGISTRY := $(DEFAULT_CONTAINER_REGISTRY)/
120+
endif
121+
118122
ifeq ($(ENABLE_DOCKER_BASE_PULL),)
119123
override ENABLE_DOCKER_BASE_PULL = n
120124
endif
@@ -139,9 +143,9 @@ $(shell SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \
139143
scripts/generate_buildinfo_config.sh)
140144

141145
# Generate the slave Dockerfile, and prepare build info for it
142-
$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile)
146+
$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile)
143147
$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) j2 $(SLAVE_DIR)/Dockerfile.user.j2 > $(SLAVE_DIR)/Dockerfile.user)
144-
$(shell BUILD_SLAVE=y scripts/prepare_docker_buildinfo.sh $(SLAVE_BASE_IMAGE) $(SLAVE_DIR)/Dockerfile $(CONFIGURED_ARCH) "" $(BLDENV))
148+
$(shell BUILD_SLAVE=y DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) scripts/prepare_docker_buildinfo.sh $(SLAVE_BASE_IMAGE) $(SLAVE_DIR)/Dockerfile $(CONFIGURED_ARCH) "" $(BLDENV))
145149

146150
# Add the versions in the tag, if the version change, need to rebuild the slave
147151
SLAVE_BASE_TAG = $(shell cat $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* src/sonic-build-hooks/hooks/* | sha1sum | awk '{print substr($$1,0,11);}')
@@ -286,6 +290,7 @@ SONIC_BUILD_INSTRUCTION := make \
286290
EXTRA_DOCKER_TARGETS=$(EXTRA_DOCKER_TARGETS) \
287291
BUILD_LOG_TIMESTAMP=$(BUILD_LOG_TIMESTAMP) \
288292
SONIC_ENABLE_IMAGE_SIGNATURE=$(ENABLE_IMAGE_SIGNATURE) \
293+
SONIC_DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \
289294
ENABLE_HOST_SERVICE_ON_START=$(ENABLE_HOST_SERVICE_ON_START) \
290295
SLAVE_DIR=$(SLAVE_DIR) \
291296
ENABLE_AUTO_TECH_SUPPORT=$(ENABLE_AUTO_TECH_SUPPORT) \

dockers/docker-base-buster/Dockerfile.j2

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
{% set prefix = DEFAULT_CONTAINER_REGISTRY %}
12
{% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %}
23
{% if CONFIGURED_ARCH == "armhf" and MULTIARCH_QEMU_ENVIRON == "y" %}
3-
FROM multiarch/debian-debootstrap:armhf-buster
4+
FROM {{ prefix }}multiarch/debian-debootstrap:armhf-buster
45
{% elif CONFIGURED_ARCH == "arm64" and MULTIARCH_QEMU_ENVIRON == "y" %}
5-
FROM multiarch/debian-debootstrap:arm64-buster
6+
FROM {{ prefix }}multiarch/debian-debootstrap:arm64-buster
67
{% else %}
7-
FROM {{DOCKER_BASE_ARCH}}/debian:buster
8+
FROM {{ prefix }}{{DOCKER_BASE_ARCH}}/debian:buster
89
{% endif %}
910

1011
# Clean documentation in FROM image

dockers/docker-base-stretch/Dockerfile.j2

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
{% set prefix = DEFAULT_CONTAINER_REGISTRY %}
12
{% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %}
23
{% if CONFIGURED_ARCH == "armhf" and MULTIARCH_QEMU_ENVIRON == "y" %}
3-
FROM multiarch/debian-debootstrap:armhf-stretch
4+
FROM {{ prefix }}multiarch/debian-debootstrap:armhf-stretch
45
{% elif CONFIGURED_ARCH == "arm64" and MULTIARCH_QEMU_ENVIRON == "y" %}
5-
FROM multiarch/debian-debootstrap:arm64-stretch
6+
FROM {{ prefix }}multiarch/debian-debootstrap:arm64-stretch
67
{% else %}
7-
FROM {{DOCKER_BASE_ARCH}}/debian:stretch
8+
FROM {{ prefix }}{{DOCKER_BASE_ARCH}}/debian:stretch
89
{% endif %}
910

1011
# Clean documentation in FROM image

dockers/docker-base/Dockerfile.j2

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
{% set prefix = DEFAULT_CONTAINER_REGISTRY %}
12
{% if CONFIGURED_ARCH == "armhf" and MULTIARCH_QEMU_ENVIRON == "y" %}
2-
FROM multiarch/debian-debootstrap:armhf-jessie
3+
FROM {{ prefix }}multiarch/debian-debootstrap:armhf-jessie
34
{% elif CONFIGURED_ARCH == "arm64" and MULTIARCH_QEMU_ENVIRON == "y" %}
4-
FROM multiarch/debian-debootstrap:arm64-jessie
5+
FROM {{ prefix }}multiarch/debian-debootstrap:arm64-jessie
56
{% else %}
6-
FROM {{DOCKER_BASE_ARCH}}/debian:jessie
7+
FROM {{ prefix }}{{DOCKER_BASE_ARCH}}/debian:jessie
78
{% endif %}
89

910
## Remove retired jessie-updates repo

dockers/docker-ptf/Dockerfile.j2

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
{% set prefix = DEFAULT_CONTAINER_REGISTRY %}
12
{% if CONFIGURED_ARCH == "armhf" and MULTIARCH_QEMU_ENVIRON == "y" %}
2-
FROM multiarch/debian-debootstrap:armhf-stretch
3+
FROM {{ prefix }}multiarch/debian-debootstrap:armhf-stretch
34
{% elif CONFIGURED_ARCH == "arm64" and MULTIARCH_QEMU_ENVIRON == "y" %}
4-
FROM multiarch/debian-debootstrap:arm64-stretch
5+
FROM {{ prefix }}multiarch/debian-debootstrap:arm64-stretch
56
{% else %}
6-
FROM debian:buster
7+
FROM {{ prefix }}debian:buster
78
{% endif %}
89

910
MAINTAINER Pavel Shirshov

dockers/docker-sonic-mgmt/Dockerfile.j2

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
FROM ubuntu:18.04
1+
{% set prefix = DEFAULT_CONTAINER_REGISTRY %}
2+
FROM {{ prefix }}ubuntu:18.04
23

34
ENV DEBIAN_FRONTEND=noninteractive
45

rules/config

+3
Original file line numberDiff line numberDiff line change
@@ -208,3 +208,6 @@ BUILD_MULTIASIC_KVM = n
208208

209209
# INCLUDE_MUX - build docker-mux for dual ToR (Gemini)
210210
INCLUDE_MUX = y
211+
212+
# reset default container registry from dockerhub to other
213+
DEFAULT_CONTAINER_REGISTRY ?=

scripts/docker_version_control.sh

+4-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ mkdir -p target/versions/default
1616
. src/sonic-build-hooks/buildinfo/config/buildinfo.config
1717

1818
image_tag=`grep "^FROM " $DOCKERFILE | awk '{print$2}'`
19+
image_tag_noprefix=$image_tag
20+
[ -n "$DEFAULT_CONTAINER_REGISTRY" ] && image_tag_noprefix=$(echo $image_tag | sed "s#$DEFAULT_CONTAINER_REGISTRY##")
1921
image=`echo $image_tag | cut -f1 -d:`
2022
tag=`echo $image_tag | cut -f2 -d:`
2123

@@ -25,7 +27,7 @@ if [[ ",$SONIC_VERSION_CONTROL_COMPONENTS," == *,all,* ]] || [[ ",$SONIC_VERSION
2527
exit 0
2628
fi
2729
if [ -f $version_file ];then
28-
hash_value=`grep "${ARCH}:${image_tag}" $version_file | awk -F== '{print$2}'`
30+
hash_value=`grep "${ARCH}:${image_tag_noprefix}" $version_file | awk -F== '{print$2}'`
2931
fi
3032
if [ -z $hash_value ];then
3133
hash_value=unknown
@@ -43,5 +45,5 @@ else
4345
fi
4446
fi
4547
if [[ "$hash_value" != "unknown" ]];then
46-
echo -e "${ARCH}:${image_tag}==$hash_value" >> $new_version_file
48+
echo -e "${ARCH}:${image_tag_noprefix}==$hash_value" >> $new_version_file
4749
fi

slave.mk

+3
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ include $(RULES_PATH)/config
130130
export PACKAGE_URL_PREFIX
131131
export TRUSTED_GPG_URLS
132132
export SONIC_VERSION_CONTROL_COMPONENTS
133+
DEFAULT_CONTAINER_REGISTRY := $(SONIC_DEFAULT_CONTAINER_REGISTRY)
134+
export DEFAULT_CONTAINER_REGISTRY
133135

134136
ifeq ($(SONIC_ENABLE_PFCWD_ON_START),y)
135137
ENABLE_PFCWD_ON_START = y
@@ -318,6 +320,7 @@ $(info "ENABLE_AUTO_TECH_SUPPORT" : "$(ENABLE_AUTO_TECH_SUPPORT)")
318320
$(info "PDDF_SUPPORT" : "$(PDDF_SUPPORT)")
319321
$(info "MULTIARCH_QEMU_ENVIRON" : "$(MULTIARCH_QEMU_ENVIRON)")
320322
$(info "SONIC_VERSION_CONTROL_COMPONENTS": "$(SONIC_VERSION_CONTROL_COMPONENTS)")
323+
$(info "DEFAULT_CONTAINER_REGISTRY" : "$(SONIC_DEFAULT_CONTAINER_REGISTRY)")
321324
ifeq ($(CONFIGURED_PLATFORM),vs)
322325
$(info "BUILD_MULTIASIC_KVM" : "$(BUILD_MULTIASIC_KVM)")
323326
endif

sonic-slave-bullseye/Dockerfile.j2

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1+
{% set prefix = DEFAULT_CONTAINER_REGISTRY %}
12
{%- if CONFIGURED_ARCH == "armhf" and MULTIARCH_QEMU_ENVIRON == "y" %}
2-
FROM multiarch/qemu-user-static:x86_64-arm-6.1.0-8 as qemu
3-
FROM multiarch/debian-debootstrap:armhf-bullseye
3+
FROM {{ prefix }}multiarch/qemu-user-static:x86_64-arm-6.1.0-8 as qemu
4+
FROM {{ prefix }}multiarch/debian-debootstrap:armhf-bullseye
45
COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin
56
{%- elif CONFIGURED_ARCH == "arm64" and MULTIARCH_QEMU_ENVIRON == "y" %}
6-
FROM multiarch/qemu-user-static:x86_64-aarch64-6.1.0-8 as qemu
7-
FROM multiarch/debian-debootstrap:arm64-bullseye
7+
FROM {{ prefix }}multiarch/qemu-user-static:x86_64-aarch64-6.1.0-8 as qemu
8+
FROM {{ prefix }}multiarch/debian-debootstrap:arm64-bullseye
89
COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin
910
{%- else -%}
10-
FROM debian:bullseye
11+
FROM {{ prefix }}debian:bullseye
1112
{%- endif %}
1213

1314

sonic-slave-buster/Dockerfile.j2

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
{% set prefix = DEFAULT_CONTAINER_REGISTRY %}
12
{%- if CONFIGURED_ARCH == "armhf" and MULTIARCH_QEMU_ENVIRON == "y" %}
2-
FROM multiarch/qemu-user-static:x86_64-arm-5.0.0-2 as qemu
3-
FROM multiarch/debian-debootstrap:armhf-buster
3+
FROM {{ prefix }}multiarch/qemu-user-static:x86_64-arm-5.0.0-2 as qemu
4+
FROM {{ prefix }}multiarch/debian-debootstrap:armhf-buster
45
COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin
56
{%- elif CONFIGURED_ARCH == "arm64" and MULTIARCH_QEMU_ENVIRON == "y" %}
6-
FROM multiarch/debian-debootstrap:arm64-buster
7+
FROM {{ prefix }}multiarch/debian-debootstrap:arm64-buster
78
{%- else -%}
8-
FROM debian:buster
9+
FROM {{ prefix }}debian:buster
910
{%- endif %}
1011

1112

sonic-slave-jessie/Dockerfile.j2

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
{% set prefix = DEFAULT_CONTAINER_REGISTRY %}
12
{%- if CONFIGURED_ARCH == "armhf" -%}
2-
FROM multiarch/debian-debootstrap:armhf-jessie
3+
FROM {{ prefix }}multiarch/debian-debootstrap:armhf-jessie
34
{%- elif CONFIGURED_ARCH == "arm64" -%}
4-
FROM multiarch/debian-debootstrap:arm64-jessie
5+
FROM {{ prefix }}multiarch/debian-debootstrap:arm64-jessie
56
{%- else -%}
6-
FROM debian:jessie
7+
FROM {{ prefix }}debian:jessie
78
{%- endif %}
89

910

sonic-slave-stretch/Dockerfile.j2

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
{% set prefix = DEFAULT_CONTAINER_REGISTRY %}
12
{%- if CONFIGURED_ARCH == "armhf" and MULTIARCH_QEMU_ENVIRON == "y" %}
2-
FROM multiarch/debian-debootstrap:armhf-stretch
3+
FROM {{ prefix }}multiarch/debian-debootstrap:armhf-stretch
34
{%- elif CONFIGURED_ARCH == "arm64" and MULTIARCH_QEMU_ENVIRON == "y" %}
4-
FROM multiarch/debian-debootstrap:arm64-stretch
5+
FROM {{ prefix }}multiarch/debian-debootstrap:arm64-stretch
56
{%- else -%}
6-
FROM debian:stretch
7+
FROM {{ prefix }}debian:stretch
78
{%- endif %}
89

910

0 commit comments

Comments
 (0)