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