Bladeren bron

move watch from alpha to main command

Signed-off-by: Guillaume Lours <[email protected]>
Guillaume Lours 2 jaren geleden
bovenliggende
commit
6be5f3003a

+ 1 - 0
cmd/compose/compose.go

@@ -477,6 +477,7 @@ func RootCommand(dockerCli command.Cli, backend api.Service) *cobra.Command { //
 		copyCommand(&opts, dockerCli, backend),
 		waitCommand(&opts, dockerCli, backend),
 		scaleCommand(&opts, dockerCli, backend),
+		watchCommand(&opts, dockerCli, backend),
 		alphaCommand(&opts, dockerCli, backend),
 	)
 

+ 6 - 5
cmd/compose/watch.go

@@ -19,12 +19,11 @@ package compose
 import (
 	"context"
 	"fmt"
-	"os"
 
 	"github.com/docker/cli/cli/command"
 	"github.com/docker/compose/v2/internal/locker"
-
 	"github.com/docker/compose/v2/pkg/api"
+	"github.com/sirupsen/logrus"
 	"github.com/spf13/cobra"
 )
 
@@ -43,11 +42,14 @@ func watchCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
 	}
 	cmd := &cobra.Command{
 		Use:   "watch [SERVICE...]",
-		Short: "EXPERIMENTAL - Watch build context for service and rebuild/refresh containers when files are updated",
+		Short: "Watch build context for service and rebuild/refresh containers when files are updated",
 		PreRunE: Adapt(func(ctx context.Context, args []string) error {
 			return nil
 		}),
-		RunE: Adapt(func(ctx context.Context, args []string) error {
+		RunE: AdaptCmd(func(ctx context.Context, cmd *cobra.Command, args []string) error {
+			if cmd.Parent().Name() == "alpha" {
+				logrus.Warn("watch command is now available as a top level command")
+			}
 			return runWatch(ctx, dockerCli, backend, watchOpts, buildOpts, args)
 		}),
 		ValidArgsFunction: completeServiceNames(dockerCli, p),
@@ -59,7 +61,6 @@ func watchCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
 }
 
 func runWatch(ctx context.Context, dockerCli command.Cli, backend api.Service, watchOpts watchOptions, buildOpts buildOptions, services []string) error {
-	fmt.Fprintln(os.Stderr, "watch command is EXPERIMENTAL")
 	project, err := watchOpts.ToProject(dockerCli, nil)
 	if err != nil {
 		return err

+ 30 - 29
docs/reference/compose.md

@@ -5,35 +5,36 @@ Define and run multi-container applications with Docker.
 
 ### Subcommands
 
-| Name                            | Description                                                             |
-|:--------------------------------|:------------------------------------------------------------------------|
-| [`build`](compose_build.md)     | Build or rebuild services                                               |
-| [`config`](compose_config.md)   | Parse, resolve and render compose file in canonical format              |
-| [`cp`](compose_cp.md)           | Copy files/folders between a service container and the local filesystem |
-| [`create`](compose_create.md)   | Creates containers for a service.                                       |
-| [`down`](compose_down.md)       | Stop and remove containers, networks                                    |
-| [`events`](compose_events.md)   | Receive real time events from containers.                               |
-| [`exec`](compose_exec.md)       | Execute a command in a running container.                               |
-| [`images`](compose_images.md)   | List images used by the created containers                              |
-| [`kill`](compose_kill.md)       | Force stop service containers.                                          |
-| [`logs`](compose_logs.md)       | View output from containers                                             |
-| [`ls`](compose_ls.md)           | List running compose projects                                           |
-| [`pause`](compose_pause.md)     | Pause services                                                          |
-| [`port`](compose_port.md)       | Print the public port for a port binding.                               |
-| [`ps`](compose_ps.md)           | List containers                                                         |
-| [`pull`](compose_pull.md)       | Pull service images                                                     |
-| [`push`](compose_push.md)       | Push service images                                                     |
-| [`restart`](compose_restart.md) | Restart service containers                                              |
-| [`rm`](compose_rm.md)           | Removes stopped service containers                                      |
-| [`run`](compose_run.md)         | Run a one-off command on a service.                                     |
-| [`scale`](compose_scale.md)     | Scale services                                                          |
-| [`start`](compose_start.md)     | Start services                                                          |
-| [`stop`](compose_stop.md)       | Stop services                                                           |
-| [`top`](compose_top.md)         | Display the running processes                                           |
-| [`unpause`](compose_unpause.md) | Unpause services                                                        |
-| [`up`](compose_up.md)           | Create and start containers                                             |
-| [`version`](compose_version.md) | Show the Docker Compose version information                             |
-| [`wait`](compose_wait.md)       | Block until the first service container stops                           |
+| Name                            | Description                                                                           |
+|:--------------------------------|:--------------------------------------------------------------------------------------|
+| [`build`](compose_build.md)     | Build or rebuild services                                                             |
+| [`config`](compose_config.md)   | Parse, resolve and render compose file in canonical format                            |
+| [`cp`](compose_cp.md)           | Copy files/folders between a service container and the local filesystem               |
+| [`create`](compose_create.md)   | Creates containers for a service.                                                     |
+| [`down`](compose_down.md)       | Stop and remove containers, networks                                                  |
+| [`events`](compose_events.md)   | Receive real time events from containers.                                             |
+| [`exec`](compose_exec.md)       | Execute a command in a running container.                                             |
+| [`images`](compose_images.md)   | List images used by the created containers                                            |
+| [`kill`](compose_kill.md)       | Force stop service containers.                                                        |
+| [`logs`](compose_logs.md)       | View output from containers                                                           |
+| [`ls`](compose_ls.md)           | List running compose projects                                                         |
+| [`pause`](compose_pause.md)     | Pause services                                                                        |
+| [`port`](compose_port.md)       | Print the public port for a port binding.                                             |
+| [`ps`](compose_ps.md)           | List containers                                                                       |
+| [`pull`](compose_pull.md)       | Pull service images                                                                   |
+| [`push`](compose_push.md)       | Push service images                                                                   |
+| [`restart`](compose_restart.md) | Restart service containers                                                            |
+| [`rm`](compose_rm.md)           | Removes stopped service containers                                                    |
+| [`run`](compose_run.md)         | Run a one-off command on a service.                                                   |
+| [`scale`](compose_scale.md)     | Scale services                                                                        |
+| [`start`](compose_start.md)     | Start services                                                                        |
+| [`stop`](compose_stop.md)       | Stop services                                                                         |
+| [`top`](compose_top.md)         | Display the running processes                                                         |
+| [`unpause`](compose_unpause.md) | Unpause services                                                                      |
+| [`up`](compose_up.md)           | Create and start containers                                                           |
+| [`version`](compose_version.md) | Show the Docker Compose version information                                           |
+| [`wait`](compose_wait.md)       | Block until the first service container stops                                         |
+| [`watch`](compose_watch.md)     | Watch build context for service and rebuild/refresh containers when files are updated |
 
 
 ### Options

+ 1 - 1
docs/reference/compose_alpha_watch.md

@@ -1,7 +1,7 @@
 # docker compose alpha watch
 
 <!---MARKER_GEN_START-->
-EXPERIMENTAL - Watch build context for service and rebuild/refresh containers when files are updated
+Watch build context for service and rebuild/refresh containers when files are updated
 
 ### Options
 

+ 16 - 0
docs/reference/compose_watch.md

@@ -0,0 +1,16 @@
+# docker compose watch
+
+<!---MARKER_GEN_START-->
+Watch build context for service and rebuild/refresh containers when files are updated
+
+### Options
+
+| Name        | Type | Default | Description                                   |
+|:------------|:-----|:--------|:----------------------------------------------|
+| `--dry-run` |      |         | Execute command in dry run mode               |
+| `--no-up`   |      |         | Do not build & start services before watching |
+| `--quiet`   |      |         | hide build output                             |
+
+
+<!---MARKER_GEN_END-->
+

+ 2 - 0
docs/reference/docker_compose.yaml

@@ -173,6 +173,7 @@ cname:
     - docker compose up
     - docker compose version
     - docker compose wait
+    - docker compose watch
 clink:
     - docker_compose_build.yaml
     - docker_compose_config.yaml
@@ -201,6 +202,7 @@ clink:
     - docker_compose_up.yaml
     - docker_compose_version.yaml
     - docker_compose_wait.yaml
+    - docker_compose_watch.yaml
 options:
     - option: ansi
       value_type: string

+ 2 - 2
docs/reference/docker_compose_alpha_watch.yaml

@@ -1,8 +1,8 @@
 command: docker compose alpha watch
 short: |
-    EXPERIMENTAL - Watch build context for service and rebuild/refresh containers when files are updated
+    Watch build context for service and rebuild/refresh containers when files are updated
 long: |
-    EXPERIMENTAL - Watch build context for service and rebuild/refresh containers when files are updated
+    Watch build context for service and rebuild/refresh containers when files are updated
 usage: docker compose alpha watch [SERVICE...]
 pname: docker compose alpha
 plink: docker_compose_alpha.yaml

+ 47 - 0
docs/reference/docker_compose_watch.yaml

@@ -0,0 +1,47 @@
+command: docker compose watch
+short: |
+    Watch build context for service and rebuild/refresh containers when files are updated
+long: |
+    Watch build context for service and rebuild/refresh containers when files are updated
+usage: docker compose watch [SERVICE...]
+pname: docker compose
+plink: docker_compose.yaml
+options:
+    - option: no-up
+      value_type: bool
+      default_value: "false"
+      description: Do not build & start services before watching
+      deprecated: false
+      hidden: false
+      experimental: false
+      experimentalcli: false
+      kubernetes: false
+      swarm: false
+    - option: quiet
+      value_type: bool
+      default_value: "false"
+      description: hide build output
+      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
+

+ 1 - 1
pkg/e2e/watch_test.go

@@ -89,7 +89,7 @@ func doTest(t *testing.T, svcName string, tarSync bool) {
 	cleanup()
 	t.Cleanup(cleanup)
 
-	cmd := cli.NewDockerComposeCmd(t, "--verbose", "alpha", "watch", svcName)
+	cmd := cli.NewDockerComposeCmd(t, "--verbose", "watch", svcName)
 	// stream output since watch runs in the background
 	cmd.Stdout = os.Stdout
 	cmd.Stderr = os.Stderr