From 35d31cc500b0b8a790091591459595abd533c677 Mon Sep 17 00:00:00 2001 From: Laura Brehm Date: Thu, 17 Nov 2022 00:57:35 +0100 Subject: [PATCH 1/2] Add `--build` option to `compose run` Signed-off-by: Laura Brehm --- cmd/compose/run.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmd/compose/run.go b/cmd/compose/run.go index 9922d792c..f2611cd6e 100644 --- a/cmd/compose/run.go +++ b/cmd/compose/run.go @@ -113,6 +113,7 @@ func runCommand(p *projectOptions, dockerCli command.Cli, backend api.Service) * projectOptions: p, }, } + createOpts := createOptions{} cmd := &cobra.Command{ Use: "run [OPTIONS] SERVICE [COMMAND] [ARGS...]", Short: "Run a one-off command on a service.", @@ -141,7 +142,7 @@ func runCommand(p *projectOptions, dockerCli command.Cli, backend api.Service) * } ignore := project.Environment["COMPOSE_IGNORE_ORPHANS"] opts.ignoreOrphans = strings.ToLower(ignore) == "true" - return runRun(ctx, backend, project, opts) + return runRun(ctx, backend, project, opts, createOpts) }), ValidArgsFunction: completeServiceNames(p), } @@ -161,6 +162,7 @@ func runCommand(p *projectOptions, dockerCli command.Cli, backend api.Service) * flags.BoolVar(&opts.useAliases, "use-aliases", false, "Use the service's network useAliases in the network(s) the container connects to.") flags.BoolVar(&opts.servicePorts, "service-ports", false, "Run command with the service's ports enabled and mapped to the host.") flags.BoolVar(&opts.quietPull, "quiet-pull", false, "Pull without printing progress information.") + flags.BoolVar(&createOpts.Build, "build", false, "Build image before starting container.") cmd.Flags().BoolVarP(&opts.interactive, "interactive", "i", true, "Keep STDIN open even if not attached.") cmd.Flags().BoolP("tty", "t", true, "Allocate a pseudo-TTY.") @@ -181,12 +183,14 @@ func normalizeRunFlags(f *pflag.FlagSet, name string) pflag.NormalizedName { return pflag.NormalizedName(name) } -func runRun(ctx context.Context, backend api.Service, project *types.Project, opts runOptions) error { +func runRun(ctx context.Context, backend api.Service, project *types.Project, opts runOptions, createOpts createOptions) error { err := opts.apply(project) if err != nil { return err } + createOpts.Apply(project) + err = progress.Run(ctx, func(ctx context.Context) error { return startDependencies(ctx, backend, *project, opts.Service, opts.ignoreOrphans) }) From 6fe03e935e68fabbab35d634e1eaa5f95fabb9b6 Mon Sep 17 00:00:00 2001 From: Laura Brehm Date: Thu, 17 Nov 2022 12:29:19 +0100 Subject: [PATCH 2/2] Update docs Signed-off-by: Laura Brehm --- docs/reference/compose_run.md | 1 + docs/reference/docker_compose_run.yaml | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/docs/reference/compose_run.md b/docs/reference/compose_run.md index 01be4664c..af8f135d5 100644 --- a/docs/reference/compose_run.md +++ b/docs/reference/compose_run.md @@ -7,6 +7,7 @@ Run a one-off command on a service. | Name | Type | Default | Description | | --- | --- | --- | --- | +| `--build` | | | Build image before starting container. | | `-d`, `--detach` | | | Run container in background and print container ID | | `--entrypoint` | `string` | | Override the entrypoint of the image | | `-e`, `--env` | `stringArray` | | Set environment variables | diff --git a/docs/reference/docker_compose_run.yaml b/docs/reference/docker_compose_run.yaml index 3783605bd..9d5715f4e 100644 --- a/docs/reference/docker_compose_run.yaml +++ b/docs/reference/docker_compose_run.yaml @@ -58,6 +58,16 @@ usage: docker compose run [OPTIONS] SERVICE [COMMAND] [ARGS...] pname: docker compose plink: docker_compose.yaml options: + - option: build + value_type: bool + default_value: "false" + description: Build image before starting container. + deprecated: false + hidden: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false - option: detach shorthand: d value_type: bool