Skip to content

Commit 2d80e68

Browse files
authored
Update docker tag to use correct version when SONIC_CONFIG_USE_NATIVE… (#24022)
…_DOCKERD_FOR_BUILD is set to true <!-- Please make sure you've read and understood our contributing guidelines: https://github.com/Azure/SONiC/blob/gh-pages/CONTRIBUTING.md failure_prs.log skip_prs.log Make sure all your commits include a signature generated with `git commit -s` ** If this is a bug fix, make sure your description includes "fixes #xxxx", or "closes #xxxx" or "resolves #xxxx" Please provide the following information: --> #### Why I did it The docker tag needed to be updated to use the correct version when SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD is set to true. Today, it always assume that $name_repo:latest was built, which is not true when SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD is set to true, causing build failures as seen in: sonic-net/sonic-buildimage#22735 ##### Work item tracking - Microsoft ADO **(number only)**: #### How I did it Updated the relevant configuration in the build system so that the docker tag reflects the correct version when the native dockerd build flag is active. #### How to verify it 1. Run a build with SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD set to true. 2. Check that the docker tag used matches the intended version. 3. Ensure the build completes successfully without docker versioning issues. <!-- If PR needs to be backported, then the PR must be tested against the base branch and the earliest backport release branch and provide tested image version on these two branches. For example, if the PR is requested for master, 202211 and 202012, then the requester needs to provide test results on master and 202012. --> #### Which release branch to backport (provide reason below if selected) <!-- - Note we only backport fixes to a release branch, *not* features! - Please also provide a reason for the backporting below. - e.g. - [x] 202006 --> - [ ] 202205 - [ ] 202211 - [ ] 202305 - [ ] 202311 - [ ] 202405 - [ ] 202411 - [ ] 202505 #### Tested branch (Please provide the tested image version) <!-- - Please provide tested image version - e.g. - [x] 20201231.100 --> - [ ] <!-- image version 1 --> - [ ] <!-- image version 2 --> #### Description for the changelog <!-- Write a short (one line) summary that describes the changes in this pull request for inclusion in the changelog: --> <!-- Ensure to add label/tag for the feature raised. example - PR#2174 under sonic-utilities repo. where, Generic Config and Update feature has been labelled as GCU. --> #### Link to config_db schema for YANG module changes <!-- Provide a link to config_db schema for the table for which YANG model is defined Link should point to correct section on https://github.com/Azure/sonic-buildimage/blob/master/src/sonic-yang-models/doc/Configuration.md --> #### A picture of a cute animal (not mandatory but encouraged)
1 parent 035923c commit 2d80e68

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

files/build_templates/sonic_debian_extension.j2

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -952,7 +952,18 @@ sudo LANG=C DOCKER_HOST="$DOCKER_HOST" chroot $FILESYSTEM_ROOT sonic-package-man
952952
{% set name, path, set_owner, enabled = package.split('|') -%}
953953
sudo LANG=C DOCKER_HOST="$DOCKER_HOST" chroot $FILESYSTEM_ROOT sonic-package-manager install --from-tarball {{ path }} {{ get_install_options(set_owner, enabled) }}
954954
name_repo=$(basename {{name}} .gz)
955-
sudo LANG=C DOCKER_HOST="$DOCKER_HOST" chroot $FILESYSTEM_ROOT docker tag $name_repo:latest $name_repo:"${SONIC_IMAGE_VERSION}"
955+
image_tags=$(sudo LANG=C DOCKER_HOST="$DOCKER_HOST" chroot $FILESYSTEM_ROOT docker images --format "{% raw %}{{.Tag}}{% endraw %}" $name_repo | grep -v "<none>")
956+
if echo "$image_tags" | grep -q "latest"; then
957+
sudo LANG=C DOCKER_HOST="$DOCKER_HOST" chroot $FILESYSTEM_ROOT docker tag $name_repo:latest $name_repo:"${SONIC_IMAGE_VERSION}"
958+
else
959+
# If not tagged with latest, find existing tag and tag with latest
960+
existing_tag=$(echo "$image_tags" | head -1)
961+
if [ -n "$existing_tag" ]; then
962+
sudo LANG=C DOCKER_HOST="$DOCKER_HOST" chroot $FILESYSTEM_ROOT docker tag $name_repo:$existing_tag $name_repo:latest
963+
else
964+
echo "Warning: No existing tag found for image $name_repo, skipping version tagging"
965+
fi
966+
fi
956967
{% endfor -%}
957968

958969
sudo umount $FILESYSTEM_ROOT/target

0 commit comments

Comments
 (0)