Skip to content

Commit 250dc43

Browse files
committed
pkg: Keep Go-version defaults only in Dockerfiles
Go-version defaults were duplicated in Bake and package Dockerfiles, which could drift and make direct builds differ from Bake builds. Removed the package-specific defaults from Bake and kept them in the Dockerfiles, alongside their upstream references. Bake still accepts explicit GO_VERSION overrides and defers to the Dockerfile default when the value is unset or empty. Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
1 parent 181d0b6 commit 250dc43

12 files changed

Lines changed: 20 additions & 24 deletions

File tree

‎.github/workflows/.build.yml‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ jobs:
5959
INPUT_VARS: ${{ inputs.vars }}
6060
with:
6161
script: |
62+
const fs = require('fs');
63+
const path = require('path');
64+
6265
const inpName = core.getInput('name');
6366
const inpRelease = core.getInput('release');
6467
const inpDistros = core.getInput('distros');
@@ -109,7 +112,12 @@ jobs:
109112
}
110113
const target = def.target[targetName];
111114
if (target.platforms && target.platforms.length > 0) {
112-
const targetGoVersion = target.args.GO_VERSION;
115+
let targetGoVersion = target.args.GO_VERSION;
116+
if (!targetGoVersion) {
117+
const dockerfilePath = path.join(target.context, target.dockerfile || 'Dockerfile');
118+
const dockerfile = fs.readFileSync(dockerfilePath, 'utf8');
119+
targetGoVersion = dockerfile.match(/^ARG GO_VERSION="([^"]+)"$/m)?.[1];
120+
}
113121
if (!targetGoVersion) {
114122
throw new Error(`GO_VERSION not found for ${targetName}`);
115123
}

‎.github/workflows/update-go.yml‎

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ jobs:
7979
8080
core.setOutput('list', JSON.stringify(goVersions));
8181
-
82-
name: Set GO_VERSION in docker-bake.hcl and Dockerfiles
82+
name: Set GO_VERSION in Dockerfiles
8383
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
8484
env:
8585
INPUT_GO_VERSIONS: ${{ steps.get-go-versions.outputs.list }}
@@ -91,18 +91,6 @@ jobs:
9191
const inpGoVersions = JSON.parse(core.getInput('go_versions'));
9292
9393
for (const item of inpGoVersions) {
94-
const bakefilePath = 'docker-bake.hcl';
95-
core.info(`Updating GO_VERSION to ${item.go_version} in ${bakefilePath} for _pkg-${item.pkg} target`);
96-
let bakeContent = fs.readFileSync(bakefilePath, 'utf8');
97-
const bakeRegex = new RegExp(
98-
`target "_pkg-${item.pkg}" \\{[\\s\\S]*?GO_VERSION = GO_VERSION != null && GO_VERSION != "" \\? GO_VERSION : "([^"]+)"`,
99-
'm'
100-
);
101-
bakeContent = bakeContent.replace(bakeRegex, (match, p1) => {
102-
return match.replace(p1, item.go_version);
103-
});
104-
fs.writeFileSync(bakefilePath, bakeContent);
105-
10694
const dockerfilePath = path.join('pkg', item.pkg, 'Dockerfile');
10795
core.info(`Updating GO_VERSION to ${item.go_version} in ${dockerfilePath}`);
10896
let dockerfileContent = fs.readFileSync(dockerfilePath, 'utf8');

‎docker-bake.hcl‎

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,6 @@ target "_pkg-buildx" {
595595
PKG_NAME = PKG_NAME != null && PKG_NAME != "" ? PKG_NAME : "docker-buildx-plugin"
596596
PKG_REPO = PKG_REPO != null && PKG_REPO != "" ? PKG_REPO : "https://github.com/docker/buildx.git"
597597
PKG_REF = PKG_REF != null && PKG_REF != "" ? PKG_REF : "master"
598-
GO_VERSION = GO_VERSION != null && GO_VERSION != "" ? GO_VERSION : "1.26" # https://github.com/docker/buildx/blob/master/Dockerfile
599598
GO_IMAGE_VARIANT = GO_IMAGE_VARIANT != null && GO_IMAGE_VARIANT != "" ? GO_IMAGE_VARIANT : "bookworm"
600599
PKG_DEB_EPOCH = PKG_DEB_EPOCH != null && PKG_DEB_EPOCH != "" ? PKG_DEB_EPOCH : ""
601600
PKG_REMOTE_DOCKERFILE = "Dockerfile"
@@ -607,7 +606,6 @@ target "_pkg-compose" {
607606
PKG_NAME = PKG_NAME != null && PKG_NAME != "" ? PKG_NAME : "docker-compose-plugin"
608607
PKG_REPO = PKG_REPO != null && PKG_REPO != "" ? PKG_REPO : "https://github.com/docker/compose.git"
609608
PKG_REF = PKG_REF != null && PKG_REF != "" ? PKG_REF : "main"
610-
GO_VERSION = GO_VERSION != null && GO_VERSION != "" ? GO_VERSION : "1.26.9" # https://github.com/docker/compose/blob/main/Dockerfile
611609
GO_IMAGE_VARIANT = GO_IMAGE_VARIANT != null && GO_IMAGE_VARIANT != "" ? GO_IMAGE_VARIANT : "bookworm"
612610
PKG_DEB_EPOCH = PKG_DEB_EPOCH != null && PKG_DEB_EPOCH != "" ? PKG_DEB_EPOCH : ""
613611
PKG_REMOTE_DOCKERFILE = "Dockerfile"
@@ -619,7 +617,6 @@ target "_pkg-containerd" {
619617
PKG_NAME = PKG_NAME != null && PKG_NAME != "" ? PKG_NAME : "containerd"
620618
PKG_REPO = PKG_REPO != null && PKG_REPO != "" ? PKG_REPO : "https://github.com/containerd/containerd.git"
621619
PKG_REF = PKG_REF != null && PKG_REF != "" ? PKG_REF : "release/2.4"
622-
GO_VERSION = GO_VERSION != null && GO_VERSION != "" ? GO_VERSION : "1.27.2" # https://github.com/containerd/containerd/blob/release/2.4/.github/workflows/release/Dockerfile
623620
GO_IMAGE_VARIANT = GO_IMAGE_VARIANT != null && GO_IMAGE_VARIANT != "" ? GO_IMAGE_VARIANT : "bookworm"
624621
PKG_DEB_EPOCH = PKG_DEB_EPOCH != null && PKG_DEB_EPOCH != "" ? PKG_DEB_EPOCH : ""
625622
RUNC_REF = RUNC_REF != null && RUNC_REF != "" ? RUNC_REF : null
@@ -632,7 +629,6 @@ target "_pkg-credential-helpers" {
632629
PKG_NAME = PKG_NAME != null && PKG_NAME != "" ? PKG_NAME : "docker-credential-helpers"
633630
PKG_REPO = PKG_REPO != null && PKG_REPO != "" ? PKG_REPO : "https://github.com/docker/docker-credential-helpers.git"
634631
PKG_REF = PKG_REF != null && PKG_REF != "" ? PKG_REF : "main"
635-
GO_VERSION = GO_VERSION != null && GO_VERSION != "" ? GO_VERSION : "1.26.9" # https://github.com/docker/docker-credential-helpers/blob/main/Dockerfile
636632
GO_IMAGE_VARIANT = GO_IMAGE_VARIANT != null && GO_IMAGE_VARIANT != "" ? GO_IMAGE_VARIANT : "bookworm"
637633
PKG_DEB_EPOCH = PKG_DEB_EPOCH != null && PKG_DEB_EPOCH != "" ? PKG_DEB_EPOCH : ""
638634
PKG_REMOTE_DOCKERFILE = "Dockerfile"
@@ -649,7 +645,6 @@ target "_pkg-docker" {
649645
DOCKER_VERSION = DOCKER_VERSION
650646
DOCKER_PLATFORM_NAME = DOCKER_PLATFORM_NAME
651647
DOCKER_PRODUCT_LICENSE = DOCKER_PRODUCT_LICENSE
652-
GO_VERSION = GO_VERSION != null && GO_VERSION != "" ? GO_VERSION : "1.26.9" # https://github.com/moby/moby/blob/master/Dockerfile
653648
GO_IMAGE_VARIANT = GO_IMAGE_VARIANT != null && GO_IMAGE_VARIANT != "" ? GO_IMAGE_VARIANT : "bookworm"
654649
PKG_REMOTE_DOCKERFILE = "Dockerfile"
655650
}
@@ -662,7 +657,6 @@ target "_pkg-docker-cli" {
662657
PKG_REF = PKG_REF != null && PKG_REF != "" ? PKG_REF : "master"
663658
DOCKER_VERSION = DOCKER_VERSION
664659
DOCKER_PLATFORM_NAME = DOCKER_PLATFORM_NAME
665-
GO_VERSION = GO_VERSION != null && GO_VERSION != "" ? GO_VERSION : "1.26.9" # https://github.com/docker/cli/blob/master/Dockerfile
666660
GO_IMAGE_VARIANT = GO_IMAGE_VARIANT != null && GO_IMAGE_VARIANT != "" ? GO_IMAGE_VARIANT : "bookworm"
667661
PKG_DEB_EPOCH = PKG_DEB_EPOCH != null && PKG_DEB_EPOCH != "" ? PKG_DEB_EPOCH : "5"
668662
PKG_REMOTE_DOCKERFILE = "Dockerfile"
@@ -677,7 +671,6 @@ target "_pkg-docker-engine" {
677671
DOCKER_VERSION = DOCKER_VERSION
678672
DOCKER_PLATFORM_NAME = DOCKER_PLATFORM_NAME
679673
DOCKER_PRODUCT_LICENSE = DOCKER_PRODUCT_LICENSE
680-
GO_VERSION = GO_VERSION != null && GO_VERSION != "" ? GO_VERSION : "1.26.9" # https://github.com/moby/moby/blob/master/Dockerfile
681674
GO_IMAGE_VARIANT = GO_IMAGE_VARIANT != null && GO_IMAGE_VARIANT != "" ? GO_IMAGE_VARIANT : "bookworm"
682675
PKG_DEB_EPOCH = PKG_DEB_EPOCH != null && PKG_DEB_EPOCH != "" ? PKG_DEB_EPOCH : "5"
683676
PKG_REMOTE_DOCKERFILE = "Dockerfile"
@@ -689,7 +682,6 @@ target "_pkg-model" {
689682
PKG_NAME = PKG_NAME != null && PKG_NAME != "" ? PKG_NAME : "docker-model-plugin"
690683
PKG_REPO = PKG_REPO != null && PKG_REPO != "" ? PKG_REPO : "https://github.com/docker/model-runner.git"
691684
PKG_REF = PKG_REF != null && PKG_REF != "" ? PKG_REF : "main"
692-
GO_VERSION = GO_VERSION != null && GO_VERSION != "" ? GO_VERSION : "1.25" # https://github.com/docker/model-runner/blob/main/cmd/cli/Dockerfile
693685
GO_IMAGE_VARIANT = GO_IMAGE_VARIANT != null && GO_IMAGE_VARIANT != "" ? GO_IMAGE_VARIANT : "bookworm"
694686
PKG_DEB_EPOCH = PKG_DEB_EPOCH != null && PKG_DEB_EPOCH != "" ? PKG_DEB_EPOCH : ""
695687
PKG_REMOTE_DOCKERFILE = "Dockerfile"
@@ -701,7 +693,6 @@ target "_pkg-agent" {
701693
PKG_NAME = PKG_NAME != null && PKG_NAME != "" ? PKG_NAME : "docker-agent-plugin"
702694
PKG_REPO = PKG_REPO != null && PKG_REPO != "" ? PKG_REPO : "https://github.com/docker/docker-agent.git"
703695
PKG_REF = PKG_REF != null && PKG_REF != "" ? PKG_REF : "main"
704-
GO_VERSION = GO_VERSION != null && GO_VERSION != "" ? GO_VERSION : "1.27.2" # https://github.com/docker/docker-agent/blob/main/Dockerfile
705696
GO_IMAGE_VARIANT = GO_IMAGE_VARIANT != null && GO_IMAGE_VARIANT != "" ? GO_IMAGE_VARIANT : "bookworm"
706697
PKG_DEB_EPOCH = PKG_DEB_EPOCH != null && PKG_DEB_EPOCH != "" ? PKG_DEB_EPOCH : ""
707698
PKG_REMOTE_DOCKERFILE = "Dockerfile"
@@ -728,7 +719,7 @@ target "_common" {
728719
BUILDKIT_MULTI_PLATFORM = 1
729720
NIGHTLY_BUILD = NIGHTLY_BUILD
730721
GO_IMAGE = GO_IMAGE
731-
GO_VERSION = GO_VERSION
722+
GO_VERSION = GO_VERSION != null && GO_VERSION != "" ? GO_VERSION : null
732723
GO_IMAGE_VARIANT = GO_IMAGE_VARIANT
733724
PKG_NAME = PKG_NAME
734725
PKG_REPO = PKG_REPO

‎pkg/agent/Dockerfile‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ ARG PKG_REPO="https://github.com/docker/docker-agent.git"
2828
ARG PKG_REF="main"
2929

3030
ARG GO_IMAGE="golang"
31+
# https://github.com/docker/docker-agent/blob/main/Dockerfile
3132
ARG GO_VERSION="1.27.2"
3233
ARG GO_IMAGE_VARIANT="bookworm"
3334

‎pkg/buildx/Dockerfile‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ ARG PKG_REPO="https://github.com/docker/buildx.git"
2828
ARG PKG_REF="master"
2929

3030
ARG GO_IMAGE="golang"
31+
# https://github.com/docker/buildx/blob/master/Dockerfile
3132
ARG GO_VERSION="1.26"
3233
ARG GO_IMAGE_VARIANT="bookworm"
3334

‎pkg/compose/Dockerfile‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ ARG PKG_REPO="https://github.com/docker/compose.git"
2828
ARG PKG_REF="main"
2929

3030
ARG GO_IMAGE="golang"
31+
# https://github.com/docker/compose/blob/main/Dockerfile
3132
ARG GO_VERSION="1.26.9"
3233
ARG GO_IMAGE_VARIANT="bookworm"
3334

‎pkg/containerd/Dockerfile‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ ARG PKG_REPO="https://github.com/containerd/containerd.git"
3434
ARG PKG_REF="main"
3535

3636
ARG GO_IMAGE="golang"
37+
# https://github.com/containerd/containerd/blob/release/2.4/.github/workflows/release/Dockerfile
3738
ARG GO_VERSION="1.27.2"
3839
ARG GO_IMAGE_VARIANT="bookworm"
3940

‎pkg/credential-helpers/Dockerfile‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ ARG PKG_REPO="https://github.com/docker/docker-credential-helpers.git"
2929
ARG PKG_REF="main"
3030

3131
ARG GO_IMAGE="golang"
32+
# https://github.com/docker/docker-credential-helpers/blob/main/Dockerfile
3233
ARG GO_VERSION="1.26.9"
3334
ARG GO_IMAGE_VARIANT="bookworm"
3435

‎pkg/docker-cli/Dockerfile‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ ARG PKG_REPO="https://github.com/docker/cli.git"
3131
ARG PKG_REF="master"
3232

3333
ARG GO_IMAGE="golang"
34+
# https://github.com/docker/cli/blob/master/Dockerfile
3435
ARG GO_VERSION="1.26.9"
3536
ARG GO_IMAGE_VARIANT="bookworm"
3637

‎pkg/docker-engine/Dockerfile‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ ARG PKG_REPO="https://github.com/docker/docker.git"
3131
ARG PKG_REF="master"
3232

3333
ARG GO_IMAGE="golang"
34+
# https://github.com/moby/moby/blob/master/Dockerfile
3435
ARG GO_VERSION="1.26.9"
3536
ARG GO_IMAGE_VARIANT="bookworm"
3637

0 commit comments

Comments
 (0)