瀏覽代碼

Merge pull request #2026 from ulyssessouza/warn-pull-build

Nicolas De loof 4 年之前
父節點
當前提交
6a6dafbdb5
共有 1 個文件被更改,包括 11 次插入1 次删除
  1. 11 1
      pkg/compose/pull.go

+ 11 - 1
pkg/compose/pull.go

@@ -58,6 +58,7 @@ func (s *composeService) pull(ctx context.Context, project *types.Project, opts
 	w := progress.ContextWriter(ctx)
 	eg, ctx := errgroup.WithContext(ctx)
 
+	var mustBuild []string
 	for _, service := range project.Services {
 		service := service
 		if service.Image == "" {
@@ -72,6 +73,9 @@ func (s *composeService) pull(ctx context.Context, project *types.Project, opts
 			err := s.pullServiceImage(ctx, service, info, s.configFile, w, false)
 			if err != nil {
 				if !opts.IgnoreFailures {
+					if service.Build != nil {
+						mustBuild = append(mustBuild, service.Name)
+					}
 					return err
 				}
 				w.TailMsgf("Pulling %s: %s", service.Name, err.Error())
@@ -80,7 +84,13 @@ func (s *composeService) pull(ctx context.Context, project *types.Project, opts
 		})
 	}
 
-	return eg.Wait()
+	err = eg.Wait()
+
+	if !opts.IgnoreFailures && len(mustBuild) > 0 {
+		w.TailMsgf("WARNING: Some service image(s) must be built from source by running:\n    docker compose build %s", strings.Join(mustBuild, " "))
+	}
+
+	return err
 }
 
 func (s *composeService) pullServiceImage(ctx context.Context, service types.ServiceConfig, info moby.Info, configFile driver.Auth, w progress.Writer, quietPull bool) error {