github.com/Heebron/moby@v0.0.0-20221111184709-6eab4f55faf7/integration/image/commit_test.go (about) 1 package image // import "github.com/docker/docker/integration/image" 2 3 import ( 4 "context" 5 "strings" 6 "testing" 7 8 "github.com/docker/docker/api/types" 9 "github.com/docker/docker/api/types/versions" 10 "github.com/docker/docker/integration/internal/container" 11 "gotest.tools/v3/assert" 12 is "gotest.tools/v3/assert/cmp" 13 "gotest.tools/v3/skip" 14 ) 15 16 func TestCommitInheritsEnv(t *testing.T) { 17 skip.If(t, versions.LessThan(testEnv.DaemonAPIVersion(), "1.36"), "broken in earlier versions") 18 skip.If(t, testEnv.DaemonInfo.OSType == "windows", "FIXME") 19 defer setupTest(t)() 20 client := testEnv.APIClient() 21 ctx := context.Background() 22 23 cID1 := container.Create(ctx, t, client) 24 imgName := strings.ToLower(t.Name()) 25 26 commitResp1, err := client.ContainerCommit(ctx, cID1, types.ContainerCommitOptions{ 27 Changes: []string{"ENV PATH=/bin"}, 28 Reference: imgName, 29 }) 30 assert.NilError(t, err) 31 32 image1, _, err := client.ImageInspectWithRaw(ctx, commitResp1.ID) 33 assert.NilError(t, err) 34 35 expectedEnv1 := []string{"PATH=/bin"} 36 assert.Check(t, is.DeepEqual(expectedEnv1, image1.Config.Env)) 37 38 cID2 := container.Create(ctx, t, client, container.WithImage(image1.ID)) 39 40 commitResp2, err := client.ContainerCommit(ctx, cID2, types.ContainerCommitOptions{ 41 Changes: []string{"ENV PATH=/usr/bin:$PATH"}, 42 Reference: imgName, 43 }) 44 assert.NilError(t, err) 45 46 image2, _, err := client.ImageInspectWithRaw(ctx, commitResp2.ID) 47 assert.NilError(t, err) 48 expectedEnv2 := []string{"PATH=/usr/bin:/bin"} 49 assert.Check(t, is.DeepEqual(expectedEnv2, image2.Config.Env)) 50 }