MCPcopy
hub / github.com/docker/compose / buildCommand

Function buildCommand

cmd/compose/build.go:94–150  ·  cmd/compose/build.go::buildCommand
(p *ProjectOptions, dockerCli command.Cli, backendOptions *BackendOptions)

Source from the content-addressed store, hash-verified

92}
93
94func buildCommand(p *ProjectOptions, dockerCli command.Cli, backendOptions *BackendOptions) *cobra.Command {
95 opts := buildOptions{
96 ProjectOptions: p,
97 }
98 cmd := &cobra.Command{
99 Use: "build [OPTIONS] [SERVICE...]",
100 Short: "Build or rebuild services",
101 PreRunE: Adapt(func(ctx context.Context, args []string) error {
102 if opts.quiet {
103 display.Mode = display.ModeQuiet
104 devnull, err := os.Open(os.DevNull)
105 if err != nil {
106 return err
107 }
108 os.Stdout = devnull
109 }
110 return nil
111 }),
112 RunE: AdaptCmd(func(ctx context.Context, cmd *cobra.Command, args []string) error {
113 if cmd.Flags().Changed("ssh") && opts.ssh == "" {
114 opts.ssh = "default"
115 }
116 if cmd.Flags().Changed("progress") && opts.ssh == "" {
117 fmt.Fprint(os.Stderr, "--progress is a global compose flag, better use `docker compose --progress xx build ...\n")
118 }
119 return runBuild(ctx, dockerCli, backendOptions, opts, args)
120 }),
121 ValidArgsFunction: completeServiceNames(dockerCli, p),
122 }
123 flags := cmd.Flags()
124 flags.BoolVar(&opts.push, "push", false, "Push service images")
125 flags.BoolVarP(&opts.quiet, "quiet", "q", false, "Suppress the build output")
126 flags.BoolVar(&opts.pull, "pull", false, "Always attempt to pull a newer version of the image")
127 flags.StringArrayVar(&opts.args, "build-arg", []string{}, "Set build-time variables for services")
128 flags.StringVar(&opts.ssh, "ssh", "", "Set SSH authentications used when building service images. (use 'default' for using your default SSH Agent)")
129 flags.StringVar(&opts.builder, "builder", "", "Set builder to use")
130 flags.BoolVar(&opts.deps, "with-dependencies", false, "Also build dependencies (transitively)")
131 flags.StringVar(&opts.provenance, "provenance", "", `Add a provenance attestation`)
132 flags.StringVar(&opts.sbom, "sbom", "", `Add a SBOM attestation`)
133
134 flags.Bool("parallel", true, "Build images in parallel. DEPRECATED")
135 flags.MarkHidden("parallel") //nolint:errcheck
136 flags.Bool("compress", true, "Compress the build context using gzip. DEPRECATED")
137 flags.MarkHidden("compress") //nolint:errcheck
138 flags.Bool("force-rm", true, "Always remove intermediate containers. DEPRECATED")
139 flags.MarkHidden("force-rm") //nolint:errcheck
140 flags.BoolVar(&opts.noCache, "no-cache", false, "Do not use cache when building the image")
141 flags.Bool("no-rm", false, "Do not remove intermediate containers after a successful build. DEPRECATED")
142 flags.MarkHidden("no-rm") //nolint:errcheck
143 flags.VarP(&opts.memory, "memory", "m", "Set memory limit for the build container. Not supported by BuildKit.")
144 flags.StringVar(&p.Progress, "progress", "", fmt.Sprintf(`Set type of ui output (%s)`, strings.Join(printerModes, ", ")))
145 flags.MarkHidden("progress") //nolint:errcheck
146 flags.BoolVar(&opts.print, "print", false, "Print equivalent bake file")
147 flags.BoolVar(&opts.check, "check", false, "Check build configuration")
148
149 return cmd
150}
151

Callers 1

RootCommandFunction · 0.85

Calls 4

AdaptFunction · 0.85
AdaptCmdFunction · 0.85
runBuildFunction · 0.85
completeServiceNamesFunction · 0.85

Tested by

no test coverage detected