From 13618756dc22534e582a04f6286a96a90b9d91af Mon Sep 17 00:00:00 2001 From: Guillaume Lours <705411+glours@users.noreply.github.com> Date: Wed, 12 Mar 2025 11:15:44 +0100 Subject: [PATCH] make publish a regular command of Compose Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com> --- cmd/compose/compose.go | 1 + cmd/compose/publish.go | 6 +- docs/reference/compose.md | 1 + docs/reference/compose_publish.md | 18 ++++++ docs/reference/docker_compose.yaml | 2 + docs/reference/docker_compose_publish.yaml | 66 ++++++++++++++++++++++ 6 files changed, 91 insertions(+), 3 deletions(-) create mode 100644 docs/reference/compose_publish.md create mode 100644 docs/reference/docker_compose_publish.yaml diff --git a/cmd/compose/compose.go b/cmd/compose/compose.go index 7f83bf8a5..aa7584df7 100644 --- a/cmd/compose/compose.go +++ b/cmd/compose/compose.go @@ -630,6 +630,7 @@ func RootCommand(dockerCli command.Cli, backend Backend) *cobra.Command { //noli scaleCommand(&opts, dockerCli, backend), statsCommand(&opts, dockerCli), watchCommand(&opts, dockerCli, backend), + publishCommand(&opts, dockerCli, backend), alphaCommand(&opts, dockerCli, backend), ) diff --git a/cmd/compose/publish.go b/cmd/compose/publish.go index c6882328c..14b22c880 100644 --- a/cmd/compose/publish.go +++ b/cmd/compose/publish.go @@ -20,12 +20,12 @@ import ( "context" "errors" + "github.com/docker/cli/cli" "github.com/docker/cli/cli/command" + "github.com/docker/compose/v2/pkg/api" "github.com/sirupsen/logrus" "github.com/spf13/cobra" "github.com/spf13/pflag" - - "github.com/docker/compose/v2/pkg/api" ) type publishOptions struct { @@ -46,7 +46,7 @@ func publishCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Servic RunE: Adapt(func(ctx context.Context, args []string) error { return runPublish(ctx, dockerCli, backend, opts, args[0]) }), - Args: cobra.ExactArgs(1), + Args: cli.ExactArgs(1), } flags := cmd.Flags() flags.BoolVar(&opts.resolveImageDigests, "resolve-image-digests", false, "Pin image tags to digests") diff --git a/docs/reference/compose.md b/docs/reference/compose.md index 33603cd89..cf858c176 100644 --- a/docs/reference/compose.md +++ b/docs/reference/compose.md @@ -28,6 +28,7 @@ Define and run multi-container applications with Docker | [`pause`](compose_pause.md) | Pause services | | [`port`](compose_port.md) | Print the public port for a port binding | | [`ps`](compose_ps.md) | List containers | +| [`publish`](compose_publish.md) | Publish compose application | | [`pull`](compose_pull.md) | Pull service images | | [`push`](compose_push.md) | Push service images | | [`restart`](compose_restart.md) | Restart service containers | diff --git a/docs/reference/compose_publish.md b/docs/reference/compose_publish.md new file mode 100644 index 000000000..8e5d18133 --- /dev/null +++ b/docs/reference/compose_publish.md @@ -0,0 +1,18 @@ +# docker compose publish + + +Publish compose application + +### Options + +| Name | Type | Default | Description | +|:--------------------------|:---------|:--------|:-------------------------------------------------------------------------------| +| `--dry-run` | `bool` | | Execute command in dry run mode | +| `--oci-version` | `string` | | OCI image/artifact specification version (automatically determined by default) | +| `--resolve-image-digests` | `bool` | | Pin image tags to digests | +| `--with-env` | `bool` | | Include environment variables in the published OCI artifact | +| `-y`, `--yes` | `bool` | | Assume "yes" as answer to all prompts | + + + + diff --git a/docs/reference/docker_compose.yaml b/docs/reference/docker_compose.yaml index dfbaa14ee..a31cb4108 100644 --- a/docs/reference/docker_compose.yaml +++ b/docs/reference/docker_compose.yaml @@ -22,6 +22,7 @@ cname: - docker compose pause - docker compose port - docker compose ps + - docker compose publish - docker compose pull - docker compose push - docker compose restart @@ -55,6 +56,7 @@ clink: - docker_compose_pause.yaml - docker_compose_port.yaml - docker_compose_ps.yaml + - docker_compose_publish.yaml - docker_compose_pull.yaml - docker_compose_push.yaml - docker_compose_restart.yaml diff --git a/docs/reference/docker_compose_publish.yaml b/docs/reference/docker_compose_publish.yaml new file mode 100644 index 000000000..44a7a46dd --- /dev/null +++ b/docs/reference/docker_compose_publish.yaml @@ -0,0 +1,66 @@ +command: docker compose publish +short: Publish compose application +long: Publish compose application +usage: docker compose publish [OPTIONS] REPOSITORY[:TAG] +pname: docker compose +plink: docker_compose.yaml +options: + - option: oci-version + value_type: string + description: | + OCI image/artifact specification version (automatically determined by default) + deprecated: false + hidden: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false + - option: resolve-image-digests + value_type: bool + default_value: "false" + description: Pin image tags to digests + deprecated: false + hidden: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false + - option: with-env + value_type: bool + default_value: "false" + description: Include environment variables in the published OCI artifact + deprecated: false + hidden: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false + - option: "yes" + shorthand: "y" + value_type: bool + default_value: "false" + description: Assume "yes" as answer to all prompts + deprecated: false + hidden: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +inherited_options: + - option: dry-run + value_type: bool + default_value: "false" + description: Execute command in dry run mode + deprecated: false + hidden: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +deprecated: false +hidden: false +experimental: false +experimentalcli: false +kubernetes: false +swarm: false +