Skip to content

Commit 57c0321

Browse files
committed
Testing images: enforce digest and move to standalone list
Signed-off-by: apostasie <[email protected]>
1 parent f860057 commit 57c0321

9 files changed

+148
-49
lines changed

cmd/nerdctl/builder/builder_builder_test.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"github.com/containerd/nerdctl/mod/tigron/test"
3131

3232
"github.com/containerd/nerdctl/v2/pkg/buildkitutil"
33+
"github.com/containerd/nerdctl/v2/pkg/referenceutil"
3334
"github.com/containerd/nerdctl/v2/pkg/testutil"
3435
"github.com/containerd/nerdctl/v2/pkg/testutil/nerdtest"
3536
)
@@ -152,14 +153,19 @@ CMD ["echo", "nerdctl-builder-debug-test-string"]`, testutil.CommonImage)
152153
// FIXME: this test should be rewritten to dynamically retrieve the ids, and use images
153154
// available on all platforms
154155
oldImage := testutil.BusyboxImage
155-
oldImageSha := "7b3ccabffc97de872a30dfd234fd972a66d247c8cfc69b0550f276481852627c"
156+
parsedOldImage, err := referenceutil.Parse(oldImage)
157+
assert.NilError(helpers.T(), err)
158+
oldImageSha := parsedOldImage.Digest.String()
159+
156160
newImage := testutil.AlpineImage
157-
newImageSha := "ec14c7992a97fc11425907e908340c6c3d6ff602f5f13d899e6b7027c9b4133a"
161+
parsedNewImage, err := referenceutil.Parse(newImage)
162+
assert.NilError(helpers.T(), err)
163+
newImageSha := parsedNewImage.Digest.String()
158164

159165
helpers.Ensure("pull", "--quiet", oldImage)
160-
helpers.Ensure("tag", oldImage, newImage)
166+
helpers.Ensure("tag", oldImage, parsedNewImage.Domain+"/"+parsedNewImage.Path+":"+parsedNewImage.Tag)
161167

162-
dockerfile := fmt.Sprintf(`FROM %s`, newImage)
168+
dockerfile := fmt.Sprintf(`FROM %s`, parsedNewImage.Domain+"/"+parsedNewImage.Path+":"+parsedNewImage.Tag)
163169
data.Temp().Save(dockerfile, "Dockerfile")
164170
data.Labels().Set("oldImageSha", oldImageSha)
165171
data.Labels().Set("newImageSha", newImageSha)

cmd/nerdctl/image/image_history_test.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ func TestImageHistory(t *testing.T) {
9595
assert.NilError(t, err, info)
9696
assert.Equal(t, len(history), 2, info)
9797

98-
localTimeL1, _ := time.Parse(time.RFC3339, "2021-03-31T10:21:23-07:00")
99-
localTimeL2, _ := time.Parse(time.RFC3339, "2021-03-31T10:21:21-07:00")
98+
localTimeL1, _ := time.Parse(time.RFC3339, "2025-02-14 03:28:36-07:00")
99+
localTimeL2, _ := time.Parse(time.RFC3339, "2025-02-14 03:28:36-07:00")
100100
compTime1, _ := time.Parse(time.RFC3339, history[0].CreatedAt)
101101
compTime2, _ := time.Parse(time.RFC3339, history[1].CreatedAt)
102102
assert.Equal(t, compTime1.UTC().String(), localTimeL1.UTC().String(), info)
@@ -123,7 +123,8 @@ func TestImageHistory(t *testing.T) {
123123
assert.NilError(t, err, info)
124124
assert.Equal(t, history[0].Size, "0", info)
125125
assert.Equal(t, history[0].CreatedSince, history[0].CreatedAt, info)
126-
assert.Equal(t, history[1].Size, "5947392", info)
126+
// FIXME: hardcoded - this is obviously tied to the specific version of the image...
127+
assert.Equal(t, history[1].Size, "8843264", info)
127128
assert.Equal(t, history[1].CreatedSince, history[1].CreatedAt, info)
128129
}),
129130
},
@@ -133,22 +134,22 @@ func TestImageHistory(t *testing.T) {
133134
Expected: test.Expects(0, nil, func(stdout string, info string, t *testing.T) {
134135
history, err := decode(stdout)
135136
assert.NilError(t, err, info)
136-
assert.Equal(t, history[1].Snapshot, "sha256:56bf55b8eed1f0b4794a30386e4d1d3da949c25bcb5155e898097cd75dc77c2a")
137-
assert.Equal(t, history[1].CreatedBy, "/bin/sh -c #(nop) ADD file:3b16ffee2b26d8af5db152fcc582aaccd9e1ec9e3343874e9969a205550fe07d in / ")
137+
assert.Equal(t, history[1].Snapshot, "sha256:a16e98724c05975ee8c40d8fe389c3481373d34ab20a1cf52ea2accc43f71f4c")
138+
assert.Equal(t, history[1].CreatedBy, "ADD alpine-minirootfs-3.21.3-aarch64.tar.gz / # buildkit")
138139
}),
139140
},
140141
{
141142
Description: "Quiet has no effect with format, so, go no-json, no-trunc",
142143
Command: test.Command("image", "history", "--human=false", "--no-trunc", "--quiet", testutil.CommonImage),
143144
Expected: test.Expects(0, nil, func(stdout string, info string, t *testing.T) {
144-
assert.Equal(t, stdout, "<missing>\nsha256:56bf55b8eed1f0b4794a30386e4d1d3da949c25bcb5155e898097cd75dc77c2a\n")
145+
assert.Equal(t, stdout, "<missing>\nsha256:a16e98724c05975ee8c40d8fe389c3481373d34ab20a1cf52ea2accc43f71f4c\n")
145146
}),
146147
},
147148
{
148149
Description: "With quiet, trunc has no effect",
149150
Command: test.Command("image", "history", "--human=false", "--no-trunc", "--quiet", testutil.CommonImage),
150151
Expected: test.Expects(0, nil, func(stdout string, info string, t *testing.T) {
151-
assert.Equal(t, stdout, "<missing>\nsha256:56bf55b8eed1f0b4794a30386e4d1d3da949c25bcb5155e898097cd75dc77c2a\n")
152+
assert.Equal(t, stdout, "<missing>\nsha256:a16e98724c05975ee8c40d8fe389c3481373d34ab20a1cf52ea2accc43f71f4c\n")
152153
}),
153154
},
154155
},

cmd/nerdctl/image/image_list_test.go

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package image
1919
import (
2020
"errors"
2121
"fmt"
22+
"github.com/containerd/nerdctl/v2/pkg/referenceutil"
2223
"os"
2324
"path/filepath"
2425
"runtime"
@@ -40,10 +41,12 @@ import (
4041
func TestImages(t *testing.T) {
4142
nerdtest.Setup()
4243

44+
commonImage, _ := referenceutil.Parse(testutil.CommonImage)
45+
4346
testCase := &test.Case{
4447
Require: require.Not(nerdtest.Docker),
4548
Setup: func(data test.Data, helpers test.Helpers) {
46-
helpers.Ensure("pull", "--quiet", testutil.CommonImage)
49+
helpers.Ensure("pull", "--quiet", commonImage.String())
4750
helpers.Ensure("pull", "--quiet", testutil.NginxAlpineImage)
4851
},
4952
SubTests: []*test.Case{
@@ -66,7 +69,7 @@ func TestImages(t *testing.T) {
6669
for _, line := range lines[1:] {
6770
repo, _ := tab.ReadRow(line, "REPOSITORY")
6871
tag, _ := tab.ReadRow(line, "TAG")
69-
if repo+":"+tag == testutil.CommonImage {
72+
if repo+":"+tag == commonImage.FamiliarName()+":"+commonImage.Tag {
7073
found = true
7174
break
7275
}
@@ -78,11 +81,11 @@ func TestImages(t *testing.T) {
7881
},
7982
{
8083
Description: "With names",
81-
Command: test.Command("images", "--names", testutil.CommonImage),
84+
Command: test.Command("images", "--names", commonImage.String()),
8285
Expected: func(data test.Data, helpers test.Helpers) *test.Expected {
8386
return &test.Expected{
8487
Output: expect.All(
85-
expect.Contains(testutil.CommonImage),
88+
expect.Contains(commonImage.String()),
8689
func(stdout string, info string, t *testing.T) {
8790
lines := strings.Split(strings.TrimSpace(stdout), "\n")
8891
assert.Assert(t, len(lines) >= 2, info)
@@ -92,7 +95,7 @@ func TestImages(t *testing.T) {
9295
found := false
9396
for _, line := range lines[1:] {
9497
name, _ := tab.ReadRow(line, "NAME")
95-
if name == testutil.CommonImage {
98+
if name == commonImage.String() {
9699
found = true
97100
break
98101
}
@@ -135,19 +138,21 @@ func TestImages(t *testing.T) {
135138
func TestImagesFilter(t *testing.T) {
136139
nerdtest.Setup()
137140

141+
commonImage, _ := referenceutil.Parse(testutil.CommonImage)
142+
138143
testCase := &test.Case{
139144
Require: nerdtest.Build,
140145
Setup: func(data test.Data, helpers test.Helpers) {
141-
helpers.Ensure("pull", "--quiet", testutil.CommonImage)
142-
helpers.Ensure("tag", testutil.CommonImage, "taggedimage:one-fragment-one")
143-
helpers.Ensure("tag", testutil.CommonImage, "taggedimage:two-fragment-two")
146+
helpers.Ensure("pull", "--quiet", commonImage.String())
147+
helpers.Ensure("tag", commonImage.String(), "taggedimage:one-fragment-one")
148+
helpers.Ensure("tag", commonImage.String(), "taggedimage:two-fragment-two")
144149

145150
dockerfile := fmt.Sprintf(`FROM %s
146151
CMD ["echo", "nerdctl-build-test-string"] \n
147152
LABEL foo=bar
148153
LABEL version=0.1
149154
RUN echo "actually creating a layer so that docker sets the createdAt time"
150-
`, testutil.CommonImage)
155+
`, commonImage.String())
151156
buildCtx := data.Temp().Path()
152157
err := os.WriteFile(filepath.Join(buildCtx, "Dockerfile"), []byte(dockerfile), 0o600)
153158
assert.NilError(helpers.T(), err)
@@ -237,32 +242,32 @@ RUN echo "actually creating a layer so that docker sets the createdAt time"
237242
Expected: func(data test.Data, helpers test.Helpers) *test.Expected {
238243
return &test.Expected{
239244
Output: expect.All(
240-
expect.Contains(testutil.ImageRepo(testutil.CommonImage)),
245+
expect.Contains(commonImage.FamiliarName(), commonImage.Tag),
241246
expect.DoesNotContain(data.Labels().Get("builtImageID")),
242247
),
243248
}
244249
},
245250
},
246251
{
247-
Description: "since=" + testutil.CommonImage,
248-
Command: test.Command("images", "--filter", fmt.Sprintf("since=%s", testutil.CommonImage)),
252+
Description: "since=" + commonImage.String(),
253+
Command: test.Command("images", "--filter", fmt.Sprintf("since=%s", commonImage.String())),
249254
Expected: func(data test.Data, helpers test.Helpers) *test.Expected {
250255
return &test.Expected{
251256
Output: expect.All(
252257
expect.Contains(data.Labels().Get("builtImageID")),
253-
expect.DoesNotContain(testutil.ImageRepo(testutil.CommonImage)),
258+
expect.DoesNotContain(commonImage.Tag),
254259
),
255260
}
256261
},
257262
},
258263
{
259-
Description: "since=" + testutil.CommonImage + " " + testutil.CommonImage,
260-
Command: test.Command("images", "--filter", fmt.Sprintf("since=%s", testutil.CommonImage), testutil.CommonImage),
264+
Description: "since=" + commonImage.String() + " " + commonImage.String(),
265+
Command: test.Command("images", "--filter", fmt.Sprintf("since=%s", commonImage.String()), commonImage.String()),
261266
Expected: func(data test.Data, helpers test.Helpers) *test.Expected {
262267
return &test.Expected{
263268
Output: expect.DoesNotContain(
264269
data.Labels().Get("builtImageID"),
265-
testutil.ImageRepo(testutil.CommonImage),
270+
commonImage.Tag,
266271
),
267272
}
268273
},

cmd/nerdctl/image/image_pull_linux_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"github.com/containerd/nerdctl/mod/tigron/require"
2929
"github.com/containerd/nerdctl/mod/tigron/test"
3030

31+
"github.com/containerd/nerdctl/v2/pkg/referenceutil"
3132
"github.com/containerd/nerdctl/v2/pkg/testutil"
3233
"github.com/containerd/nerdctl/v2/pkg/testutil/nerdtest"
3334
"github.com/containerd/nerdctl/v2/pkg/testutil/nerdtest/registry"
@@ -113,6 +114,7 @@ func TestImagePullPlainHttpWithDefaultPort(t *testing.T) {
113114
nerdtest.Setup()
114115

115116
var reg *registry.Server
117+
im, _ := referenceutil.Parse(testutil.CommonImage)
116118
dockerfile := fmt.Sprintf(`FROM %s
117119
CMD ["echo", "nerdctl-build-test-string"]
118120
`, testutil.CommonImage)
@@ -130,7 +132,7 @@ CMD ["echo", "nerdctl-build-test-string"]
130132
reg = nerdtest.RegistryWithNoAuth(data, helpers, 80, false)
131133
reg.Setup(data, helpers)
132134
testImageRef := fmt.Sprintf("%s/%s:%s",
133-
reg.IP.String(), data.Identifier(), strings.Split(testutil.CommonImage, ":")[1])
135+
reg.IP.String(), data.Identifier(), im.Tag)
134136
buildCtx := data.Temp().Path()
135137

136138
helpers.Ensure("build", "-t", testImageRef, buildCtx)

cmd/nerdctl/image/image_push_linux_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"github.com/containerd/nerdctl/mod/tigron/require"
2929
"github.com/containerd/nerdctl/mod/tigron/test"
3030

31+
"github.com/containerd/nerdctl/v2/pkg/referenceutil"
3132
"github.com/containerd/nerdctl/v2/pkg/testutil"
3233
"github.com/containerd/nerdctl/v2/pkg/testutil/nerdtest"
3334
"github.com/containerd/nerdctl/v2/pkg/testutil/testregistry"
@@ -37,6 +38,7 @@ func TestPush(t *testing.T) {
3738
nerdtest.Setup()
3839

3940
var registryNoAuthHTTPRandom, registryNoAuthHTTPDefault, registryTokenAuthHTTPSRandom *testregistry.RegistryServer
41+
commonImage, _ := referenceutil.Parse(testutil.CommonImage)
4042

4143
testCase := &test.Case{
4244
Require: require.Linux,
@@ -66,7 +68,7 @@ func TestPush(t *testing.T) {
6668
Setup: func(data test.Data, helpers test.Helpers) {
6769
helpers.Ensure("pull", "--quiet", testutil.CommonImage)
6870
testImageRef := fmt.Sprintf("%s:%d/%s:%s",
69-
registryNoAuthHTTPRandom.IP.String(), registryNoAuthHTTPRandom.Port, data.Identifier(), strings.Split(testutil.CommonImage, ":")[1])
71+
registryNoAuthHTTPRandom.IP.String(), registryNoAuthHTTPRandom.Port, data.Identifier(), commonImage.Tag)
7072
data.Labels().Set("testImageRef", testImageRef)
7173
helpers.Ensure("tag", testutil.CommonImage, testImageRef)
7274
},

pkg/testutil/images.env

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
ALPINE=alpine:3.21.3@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c
2+
BUSYBOX=busybox:1.37.0@sha256:37f7b378a29ceb4c551b1b5582e27747b855bbfaa73fa11914fe0df028dc581f
3+
DEBIAN=debian:bookworm-slim@sha256:b1211f6d19afd012477bd34fdcabb6b663d680e0f4b0537da6e6b0fd057a3ec3
4+
DOCKER_AUTH=cesanta/docker_auth:1.13.0@sha256:c2968eea28ff51b75b88e45147b1d5b8387fd7836400cb97d076c0feb4a451d9
5+
FLUENTD=fluentd:v1.18.0-debian-1.0@sha256:e7c937425430ad9a23123855379a144f5d079bed8d3b87342bf1e6babb4009fd
6+
GITLAB=gitlab/gitlab-ee:17.11.0-ee.0@sha256:e0d9d5e0d0068f4b4bac3e15eb48313b5c3bb508425645f421bf2773a964c4ae
7+
GOLANG=golang:1.23.8-bookworm@sha256:1a73e15c5a17855b58014aab45df0fdf8be778f12a62ed2a48009fe2c0022091
8+
HARBOR=bitnami/harbor-portal:v2.13.0@sha256:636f39610b359369aeeddd7859cb56274d9a1bc3e467e21d74ea89e1516c1a0c
9+
KUBO=ipfs/kubo:v0.34.1@sha256:1cf421fbd881d01144c0da39aa1511c05f1ef3fd5eebee6ba7487ecc0f915a44
10+
MARIADB=mariadb:11.7.2@sha256:81e893032978c4bf8ad43710b7a979774ed90787fa32d199162148ce28fe3b76
11+
NANOSERVER=mcr.microsoft.com/windows/nanoserver:ltsc2022@sha256:16b61ffac72961551c4b5312a7ab3da7c3dc3258510e40bee309e6e51f006ac6
12+
NGINX=nginx:alpine3.21@sha256:65645c7bb6a0661892a8b03b89d0743208a18dd2f3f17a54ef4b76fb8e2f2a10
13+
REGISTRY=registry:3.0.0@sha256:1fc7de654f2ac1247f0b67e8a459e273b0993be7d2beda1f3f56fbf1001ed3e7
14+
SYSTEMD=ghcr.io/containerd/stargz-snapshotter:0.16.3-kind@sha256:c7c7de2af39f2373a89b6f993a81c9e19b65bf37a65ab14ef2791c97c07e530e
15+
WORDPRESS=wordpress:6.8.0-php8.4-fpm-alpine@sha256:309b64fa4266d8a3fe6f0973ae3172fec1023c9b18242ccf1dffbff5dc8b81a8
16+
ALPINE_HISTORY_CREATED="2025-02-14 03:28:36-07:00"
17+
ALPINE_HISTORY_1_SNAPSHOT=a16e98724c05975ee8c40d8fe389c3481373d34ab20a1cf52ea2accc43f71f4c
18+
ALPINE_HISTORY_1_SIZE=8843264
19+
ALPINE_HISTORY_1_CREATED_BY="ADD alpine-minirootfs-3.21.3-aarch64.tar.gz / # buildkit"

pkg/testutil/images_linux.go

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
/*
2+
Copyright The containerd Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package testutil
18+
19+
import (
20+
_ "embed"
21+
"fmt"
22+
"strings"
23+
24+
"github.com/containerd/nerdctl/v2/pkg/referenceutil"
25+
)
26+
27+
//go:embed images.env
28+
var imagesList string
29+
30+
// getImage retrieves (from the env file) the fully qualified reference of an image, from its short name.
31+
// No particular error handling effort is done here.
32+
// If the env file is broken, or if the requested image does not exist, this is fatal.
33+
func getImage(name string) string {
34+
parsed, err := referenceutil.Parse(name)
35+
36+
if err != nil {
37+
panic(fmt.Errorf("malformed image name requested: %w", err))
38+
}
39+
40+
// Ignore tag and digests for now - we currently support only one tag digest per image
41+
name = parsed.Domain + "/" + parsed.Path
42+
43+
for _, k := range strings.Split(imagesList, "\n") {
44+
k = strings.TrimSpace(k)
45+
if strings.HasPrefix(k, "#") || k == "" {
46+
continue
47+
}
48+
49+
spl := strings.Split(k, "=")
50+
if len(spl) != 2 {
51+
continue
52+
}
53+
54+
item, err := referenceutil.Parse(spl[1])
55+
if err != nil {
56+
panic(fmt.Errorf("malformed image found in env file: %w (%s)", err, spl[1]))
57+
}
58+
59+
if item.Domain+"/"+item.Path == name {
60+
return spl[1]
61+
}
62+
}
63+
64+
panic(fmt.Sprintf("no such test image is defined: %s", name))
65+
66+
//nolint:govet
67+
return ""
68+
}

pkg/testutil/testutil.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ import (
4040
"github.com/containerd/log"
4141

4242
"github.com/containerd/nerdctl/v2/pkg/buildkitutil"
43-
"github.com/containerd/nerdctl/v2/pkg/imgutil"
4443
"github.com/containerd/nerdctl/v2/pkg/infoutil"
4544
"github.com/containerd/nerdctl/v2/pkg/inspecttypes/dockercompat"
4645
"github.com/containerd/nerdctl/v2/pkg/inspecttypes/native"
@@ -749,13 +748,6 @@ func Identifier(t testing.TB) string {
749748
return s
750749
}
751750

752-
// ImageRepo returns the image repo that can be used to, e.g, validate output
753-
// from `nerdctl images`.
754-
func ImageRepo(s string) string {
755-
repo, _ := imgutil.ParseRepoTag(s)
756-
return repo
757-
}
758-
759751
// RegisterBuildCacheCleanup adds a 'builder prune --all --force' cleanup function
760752
// to run on test teardown.
761753
func RegisterBuildCacheCleanup(t *testing.T) {

pkg/testutil/testutil_linux.go

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,24 @@
1717
package testutil
1818

1919
var (
20-
BusyboxImage = "ghcr.io/containerd/busybox:1.36"
21-
AlpineImage = mirrorOf("alpine:3.13")
22-
NginxAlpineImage = mirrorOf("nginx:1.19-alpine")
20+
AlpineImage = getImage("alpine")
21+
BusyboxImage = getImage("busybox")
22+
DockerAuthImage = getImage("cesanta/docker_auth")
23+
FluentdImage = getImage("fluentd")
24+
GolangImage = getImage("golang")
25+
KuboImage = getImage("ipfs/kubo")
26+
MariaDBImage = getImage("mariadb")
27+
NginxAlpineImage = getImage("nginx")
28+
RegistryImageStable = getImage("registry")
29+
RegistryImageNext = getImage("registry")
30+
SystemdImage = getImage("ghcr.io/containerd/stargz-snapshotter")
31+
WordpressImage = getImage("wordpress")
32+
33+
// Until we remove the helper
34+
_ = mirrorOf("nblblbl")
35+
2336
NginxAlpineIndexHTMLSnippet = "<title>Welcome to nginx!</title>"
24-
RegistryImageStable = mirrorOf("registry:2")
25-
RegistryImageNext = "ghcr.io/distribution/distribution:"
26-
WordpressImage = mirrorOf("wordpress:5.7")
2737
WordpressIndexHTMLSnippet = "<title>WordPress &rsaquo; Installation</title>"
28-
MariaDBImage = mirrorOf("mariadb:10.5")
29-
DockerAuthImage = mirrorOf("cesanta/docker_auth:1.7")
30-
FluentdImage = "fluent/fluentd:v1.17.0-debian-1.0"
31-
KuboImage = mirrorOf("ipfs/kubo:v0.16.0")
32-
SystemdImage = "ghcr.io/containerd/stargz-snapshotter:0.15.1-kind"
33-
GolangImage = mirrorOf("golang:1.18")
3438

3539
// Source: https://gist.github.com/cpuguy83/fcf3041e5d8fb1bb5c340915aabeebe0
3640
NonDistBlobImage = "ghcr.io/cpuguy83/non-dist-blob:latest"

0 commit comments

Comments
 (0)