Merge pull request #1470 from aiordache/build_args

Add `no-cache` build flag
This commit is contained in:
Nicolas De loof 2021-03-30 15:58:28 +02:00 committed by GitHub
commit 9df272a893
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 0 deletions

View File

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

View File

@ -18,6 +18,7 @@ package compose
import ( import (
"context" "context"
"fmt"
"os" "os"
"github.com/compose-spec/compose-go/types" "github.com/compose-spec/compose-go/types"
@ -35,6 +36,8 @@ type buildOptions struct {
pull bool pull bool
progress string progress string
args []string args []string
noCache bool
memory string
} }
func buildCommand(p *projectOptions) *cobra.Command { func buildCommand(p *projectOptions) *cobra.Command {
@ -45,6 +48,9 @@ func buildCommand(p *projectOptions) *cobra.Command {
Use: "build [SERVICE...]", Use: "build [SERVICE...]",
Short: "Build or rebuild services", Short: "Build or rebuild services",
RunE: func(cmd *cobra.Command, args []string) error { 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 { if opts.quiet {
devnull, err := os.Open(os.DevNull) devnull, err := os.Open(os.DevNull)
if err != nil { if err != nil {
@ -65,6 +71,11 @@ func buildCommand(p *projectOptions) *cobra.Command {
cmd.Flags().MarkHidden("compress") //nolint:errcheck cmd.Flags().MarkHidden("compress") //nolint:errcheck
cmd.Flags().Bool("force-rm", true, "Always remove intermediate containers. DEPRECATED") cmd.Flags().Bool("force-rm", true, "Always remove intermediate containers. DEPRECATED")
cmd.Flags().MarkHidden("force-rm") //nolint:errcheck 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 return cmd
} }
@ -85,6 +96,7 @@ func runBuild(ctx context.Context, opts buildOptions, services []string) error {
Pull: opts.pull, Pull: opts.pull,
Progress: opts.progress, Progress: opts.progress,
Args: types.NewMapping(opts.args), Args: types.NewMapping(opts.args),
NoCache: opts.noCache,
}) })
}) })
return err return err

View File

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