5 Commits
Author SHA1 Message Date
Sebastiaan van Stijn 4a3e139e3c daemon/command: NewDaemonRunner: set both stdout and stderr
Make sure Cobra is configured with the streams we use, and use
Cobra's utilities to print the validation messsage.

While updating, also add a short comment outlining why we're using
STDERR, not STDOUT for this message.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-11-06 15:53:11 +01:00
Sebastiaan van Stijn e509a7cefe daemon/command: remove __dummy_command workaround for completion
This workaround was added in 3bb40af036 to
work around a limitation of Cobra, which didn't support completion if there
are no subcommands, because [Command.InitDefaultCompletionCmd] disabled
completion, as implicitly adding the hidden `completion` and `__complete`
subcommands would break binaries without subcommands that accepted positional
args.

This problem was fixed in Cobra v1.9.0 through [cobra@24ada7f], which now
dynamically adds the `completion` subcommand when invoked.

This patch removes the hidden `__dummy_command`, which was used to work around
the logic in Cobra < v1.9.0, and to make it enable completion regardless.

Completion should still work as usual:

    dockerd completion --help

    Usage:	dockerd completion [flags]
    ...

    source <(dockerd completion bash)
    dockerd --default-<tab>
    --default-address-pool   (Default address pools for node specific local networks)
    --default-cgroupns-mode  (Default mode for containers cgroup namespace ("host" | "private"))
    --default-gateway        (Default gateway IPv4 address for the default bridge network)
    --default-gateway-v6     (Default gateway IPv6 address for the default bridge network)
    --default-ipc-mode       (Default mode for containers ipc ("shareable" | "private"))
    --default-network-opt    (Default network options)
    --default-runtime        (Default OCI runtime for containers)
    --default-shm-size       (Default shm size for containers)
    --default-ulimit         (Default ulimits for containers)

[Command.InitDefaultCompletionCmd]: https://github.com/spf13/cobra/blob/v1.8.1/completions.go#L685-L698
[cobra@24ada7f]: https://github.com/spf13/cobra/commit/24ada7fe71e3a3a8741dd52e0a7fc3b97450535a

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-11-06 09:42:49 +01:00
Derek McGowan f74e5d48b3 Create github.com/moby/moby/v2 module
Signed-off-by: Derek McGowan <derek@mcg.dev>
2025-07-31 10:13:29 -07:00
Sebastiaan van Stijn d761d9d358 pkg/rootless: move to daemon/internal
This package is used internally by the daemon, and was only used out
side of the daemon by pkg/plugins (for which we still need to look
where it should be kept).

Making it internal because it's trivial to implement if needed by
anyone. The only reason it's a package is to keep it central, and
to make it easier to discover where we have rootlesskit-specific
codepaths in our codebase.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-07-28 22:04:39 +02:00
Derek McGowan 33139da522 Split part of dockerd main to command under daemon
Allows using daemon/internal packages when creating dockerd

Signed-off-by: Derek McGowan <derek@mcg.dev>
2025-06-23 14:45:03 -07:00