浏览代码

Merge pull request #1470 from aiordache/build_args

Add `no-cache` build flag
Nicolas De loof 4 年之前
父节点
当前提交
9df272a893
共有 3 个文件被更改,包括 15 次插入0 次删除
  1. 2 0
      api/compose/api.go
  2. 12 0
      cli/cmd/compose/build.go
  3. 1 0
      local/compose/build.go

+ 2 - 0
api/compose/api.go

@@ -82,6 +82,8 @@ type BuildOptions struct {
 	Progress string
 	// Args set build-time args
 	Args types.Mapping
+	// NoCache disables cache use
+	NoCache bool
 }
 
 // CreateOptions group options of the Create API

+ 12 - 0
cli/cmd/compose/build.go

@@ -18,6 +18,7 @@ package compose
 
 import (
 	"context"
+	"fmt"
 	"os"
 
 	"github.com/compose-spec/compose-go/types"
@@ -35,6 +36,8 @@ type buildOptions struct {
 	pull     bool
 	progress string
 	args     []string
+	noCache  bool
+	memory   string
 }
 
 func buildCommand(p *projectOptions) *cobra.Command {
@@ -45,6 +48,9 @@ func buildCommand(p *projectOptions) *cobra.Command {
 		Use:   "build [SERVICE...]",
 		Short: "Build or rebuild services",
 		RunE: func(cmd *cobra.Command, args []string) error {
+			if opts.memory != "" {
+				fmt.Println("WARNING --memory is ignored as not supported in buildkit.")
+			}
 			if opts.quiet {
 				devnull, err := os.Open(os.DevNull)
 				if err != nil {
@@ -65,6 +71,11 @@ func buildCommand(p *projectOptions) *cobra.Command {
 	cmd.Flags().MarkHidden("compress") //nolint:errcheck
 	cmd.Flags().Bool("force-rm", true, "Always remove intermediate containers. DEPRECATED")
 	cmd.Flags().MarkHidden("force-rm") //nolint:errcheck
+	cmd.Flags().BoolVar(&opts.noCache, "no-cache", false, "Do not use cache when building the image")
+	cmd.Flags().Bool("no-rm", false, "Do not remove intermediate containers after a successful build. DEPRECATED")
+	cmd.Flags().MarkHidden("no-rm") //nolint:errcheck
+	cmd.Flags().StringVarP(&opts.memory, "memory", "m", "", "Set memory limit for the build container. Not supported on buildkit yet.")
+	cmd.Flags().MarkHidden("memory") //nolint:errcheck
 
 	return cmd
 }
@@ -85,6 +96,7 @@ func runBuild(ctx context.Context, opts buildOptions, services []string) error {
 			Pull:     opts.pull,
 			Progress: opts.progress,
 			Args:     types.NewMapping(opts.args),
+			NoCache:  opts.noCache,
 		})
 	})
 	return err

+ 1 - 0
local/compose/build.go

@@ -63,6 +63,7 @@ func (s *composeService) Build(ctx context.Context, project *types.Project, opti
 			}
 			buildOptions.Pull = options.Pull
 			buildOptions.BuildArgs = options.Args
+			buildOptions.NoCache = options.NoCache
 			opts[imageName] = buildOptions
 			buildOptions.CacheFrom, err = build.ParseCacheEntry(service.Build.CacheFrom)
 			if err != nil {