commit_test.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package image
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/docker/docker/api/types"
  6. "github.com/docker/docker/api/types/container"
  7. "github.com/docker/docker/integration/util/request"
  8. "github.com/stretchr/testify/assert"
  9. "github.com/stretchr/testify/require"
  10. )
  11. func TestCommitInheritsEnv(t *testing.T) {
  12. defer setupTest(t)()
  13. client := request.NewAPIClient(t)
  14. ctx := context.Background()
  15. createResp1, err := client.ContainerCreate(ctx, &container.Config{Image: "busybox"}, nil, nil, "")
  16. require.NoError(t, err)
  17. commitResp1, err := client.ContainerCommit(ctx, createResp1.ID, types.ContainerCommitOptions{
  18. Changes: []string{"ENV PATH=/bin"},
  19. Reference: "test-commit-image",
  20. })
  21. require.NoError(t, err)
  22. image1, _, err := client.ImageInspectWithRaw(ctx, commitResp1.ID)
  23. require.NoError(t, err)
  24. expectedEnv1 := []string{"PATH=/bin"}
  25. assert.Equal(t, expectedEnv1, image1.Config.Env)
  26. createResp2, err := client.ContainerCreate(ctx, &container.Config{Image: image1.ID}, nil, nil, "")
  27. require.NoError(t, err)
  28. commitResp2, err := client.ContainerCommit(ctx, createResp2.ID, types.ContainerCommitOptions{
  29. Changes: []string{"ENV PATH=/usr/bin:$PATH"},
  30. Reference: "test-commit-image",
  31. })
  32. require.NoError(t, err)
  33. image2, _, err := client.ImageInspectWithRaw(ctx, commitResp2.ID)
  34. require.NoError(t, err)
  35. expectedEnv2 := []string{"PATH=/usr/bin:/bin"}
  36. assert.Equal(t, expectedEnv2, image2.Config.Env)
  37. }