浏览代码

pull: only skip pull when policy is `missing`/`if_not_present`

Fixes #9773.

Signed-off-by: Nick Sieger <[email protected]>
Nick Sieger 3 年之前
父节点
当前提交
5723dee316

+ 0 - 9
pkg/compose/pull.go

@@ -96,15 +96,6 @@ func (s *composeService) pull(ctx context.Context, project *types.Project, opts
 				})
 				continue
 			}
-		default:
-			if _, ok := images[service.Image]; ok {
-				w.Event(progress.Event{
-					ID:     service.Name,
-					Status: progress.Done,
-					Text:   "Skipped - Image is already present locally",
-				})
-				continue
-			}
 		}
 
 		if s, ok := imagesBeingPulled[service.Image]; ok {

+ 7 - 0
pkg/e2e/compose_test.go

@@ -131,6 +131,13 @@ func TestComposePull(t *testing.T) {
 
 		assert.Assert(t, strings.Contains(output, "simple Pulled"))
 		assert.Assert(t, strings.Contains(output, "another Pulled"))
+
+		// verify default policy is 'always' for pull command
+		res = c.RunDockerComposeCmd(t, "--project-directory", "fixtures/compose-pull/simple", "pull")
+		output = res.Combined()
+
+		assert.Assert(t, strings.Contains(output, "simple Pulled"))
+		assert.Assert(t, strings.Contains(output, "another Pulled"))
 	})
 
 	t.Run("Verify a image is pulled once", func(t *testing.T) {

+ 1 - 0
pkg/e2e/fixtures/compose-pull/image-present-locally/docker-compose.yaml

@@ -1,4 +1,5 @@
 services:
   simple:
     image: alpine:3.13.12
+    pull_policy: missing
     command: top