Skip to content

Commit fcb260d

Browse files
authored
Merge pull request #6299 from Benehiko/commands/container
Unexport container commands
2 parents 6e5ce4d + 38595fe commit fcb260d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+292
-118
lines changed

cli/command/commands/commands.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,11 @@ import (
2929
func AddCommands(cmd *cobra.Command, dockerCli command.Cli) {
3030
cmd.AddCommand(
3131
// commonly used shorthands
32+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
3233
container.NewRunCommand(dockerCli),
34+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
3335
container.NewExecCommand(dockerCli),
36+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
3437
container.NewPsCommand(dockerCli),
3538
image.NewBuildCommand(dockerCli),
3639
image.NewPullCommand(dockerCli),
@@ -49,6 +52,7 @@ func AddCommands(cmd *cobra.Command, dockerCli command.Cli) {
4952
builder.NewBuilderCommand(dockerCli),
5053
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
5154
checkpoint.NewCheckpointCommand(dockerCli),
55+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
5256
container.NewContainerCommand(dockerCli),
5357
context.NewContextCommand(dockerCli),
5458
image.NewImageCommand(dockerCli),
@@ -69,25 +73,45 @@ func AddCommands(cmd *cobra.Command, dockerCli command.Cli) {
6973
swarm.NewSwarmCommand(dockerCli),
7074

7175
// legacy commands may be hidden
76+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
7277
hide(container.NewAttachCommand(dockerCli)),
78+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
7379
hide(container.NewCommitCommand(dockerCli)),
80+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
7481
hide(container.NewCopyCommand(dockerCli)),
82+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
7583
hide(container.NewCreateCommand(dockerCli)),
84+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
7685
hide(container.NewDiffCommand(dockerCli)),
86+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
7787
hide(container.NewExportCommand(dockerCli)),
88+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
7889
hide(container.NewKillCommand(dockerCli)),
90+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
7991
hide(container.NewLogsCommand(dockerCli)),
92+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
8093
hide(container.NewPauseCommand(dockerCli)),
94+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
8195
hide(container.NewPortCommand(dockerCli)),
96+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
8297
hide(container.NewRenameCommand(dockerCli)),
98+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
8399
hide(container.NewRestartCommand(dockerCli)),
100+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
84101
hide(container.NewRmCommand(dockerCli)),
102+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
85103
hide(container.NewStartCommand(dockerCli)),
104+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
86105
hide(container.NewStatsCommand(dockerCli)),
106+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
87107
hide(container.NewStopCommand(dockerCli)),
108+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
88109
hide(container.NewTopCommand(dockerCli)),
110+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
89111
hide(container.NewUnpauseCommand(dockerCli)),
112+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
90113
hide(container.NewUpdateCommand(dockerCli)),
114+
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
91115
hide(container.NewWaitCommand(dockerCli)),
92116
hide(image.NewHistoryCommand(dockerCli)),
93117
hide(image.NewImportCommand(dockerCli)),

cli/command/container/attach.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,13 @@ func inspectContainerAndCheckState(ctx context.Context, apiClient client.APIClie
4141
}
4242

4343
// NewAttachCommand creates a new cobra.Command for `docker attach`
44+
//
45+
// Deprecated: Do not import commands directly. They will be removed in a future release.
4446
func NewAttachCommand(dockerCLI command.Cli) *cobra.Command {
47+
return newAttachCommand(dockerCLI)
48+
}
49+
50+
func newAttachCommand(dockerCLI command.Cli) *cobra.Command {
4551
var opts AttachOptions
4652

4753
cmd := &cobra.Command{

cli/command/container/attach_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func TestNewAttachCommandErrors(t *testing.T) {
7474
}
7575
for _, tc := range testCases {
7676
t.Run(tc.name, func(t *testing.T) {
77-
cmd := NewAttachCommand(test.NewFakeCli(&fakeClient{inspectFunc: tc.containerInspectFunc}))
77+
cmd := newAttachCommand(test.NewFakeCli(&fakeClient{inspectFunc: tc.containerInspectFunc}))
7878
cmd.SetOut(io.Discard)
7979
cmd.SetErr(io.Discard)
8080
cmd.SetArgs(tc.args)

cli/command/container/cmd.go

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,39 +7,45 @@ import (
77
)
88

99
// NewContainerCommand returns a cobra command for `container` subcommands
10-
func NewContainerCommand(dockerCli command.Cli) *cobra.Command {
10+
//
11+
// Deprecated: Do not import commands directly. They will be removed in a future release.
12+
func NewContainerCommand(dockerCLI command.Cli) *cobra.Command {
13+
return newContainerCommand(dockerCLI)
14+
}
15+
16+
func newContainerCommand(dockerCLI command.Cli) *cobra.Command {
1117
cmd := &cobra.Command{
1218
Use: "container",
1319
Short: "Manage containers",
1420
Args: cli.NoArgs,
15-
RunE: command.ShowHelp(dockerCli.Err()),
21+
RunE: command.ShowHelp(dockerCLI.Err()),
1622
}
1723
cmd.AddCommand(
18-
NewAttachCommand(dockerCli),
19-
NewCommitCommand(dockerCli),
20-
NewCopyCommand(dockerCli),
21-
NewCreateCommand(dockerCli),
22-
NewDiffCommand(dockerCli),
23-
NewExecCommand(dockerCli),
24-
NewExportCommand(dockerCli),
25-
NewKillCommand(dockerCli),
26-
NewLogsCommand(dockerCli),
27-
NewPauseCommand(dockerCli),
28-
NewPortCommand(dockerCli),
29-
NewRenameCommand(dockerCli),
30-
NewRestartCommand(dockerCli),
31-
newRemoveCommand(dockerCli),
32-
NewRunCommand(dockerCli),
33-
NewStartCommand(dockerCli),
34-
NewStatsCommand(dockerCli),
35-
NewStopCommand(dockerCli),
36-
NewTopCommand(dockerCli),
37-
NewUnpauseCommand(dockerCli),
38-
NewUpdateCommand(dockerCli),
39-
NewWaitCommand(dockerCli),
40-
newListCommand(dockerCli),
41-
newInspectCommand(dockerCli),
42-
NewPruneCommand(dockerCli),
24+
newAttachCommand(dockerCLI),
25+
newCommitCommand(dockerCLI),
26+
newCopyCommand(dockerCLI),
27+
newCreateCommand(dockerCLI),
28+
newDiffCommand(dockerCLI),
29+
newExecCommand(dockerCLI),
30+
newExportCommand(dockerCLI),
31+
newKillCommand(dockerCLI),
32+
newLogsCommand(dockerCLI),
33+
newPauseCommand(dockerCLI),
34+
newPortCommand(dockerCLI),
35+
newRenameCommand(dockerCLI),
36+
newRestartCommand(dockerCLI),
37+
newRemoveCommand(dockerCLI),
38+
newRunCommand(dockerCLI),
39+
newStartCommand(dockerCLI),
40+
newStatsCommand(dockerCLI),
41+
newStopCommand(dockerCLI),
42+
newTopCommand(dockerCLI),
43+
newUnpauseCommand(dockerCLI),
44+
newUpdateCommand(dockerCLI),
45+
newWaitCommand(dockerCLI),
46+
newListCommand(dockerCLI),
47+
newInspectCommand(dockerCLI),
48+
newPruneCommand(dockerCLI),
4349
)
4450
return cmd
4551
}

cli/command/container/commit.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,13 @@ type commitOptions struct {
2323
}
2424

2525
// NewCommitCommand creates a new cobra.Command for `docker commit`
26-
func NewCommitCommand(dockerCli command.Cli) *cobra.Command {
26+
//
27+
// Deprecated: Do not import commands directly. They will be removed in a future release.
28+
func NewCommitCommand(dockerCLI command.Cli) *cobra.Command {
29+
return newCommitCommand(dockerCLI)
30+
}
31+
32+
func newCommitCommand(dockerCLI command.Cli) *cobra.Command {
2733
var options commitOptions
2834

2935
cmd := &cobra.Command{
@@ -35,12 +41,12 @@ func NewCommitCommand(dockerCli command.Cli) *cobra.Command {
3541
if len(args) > 1 {
3642
options.reference = args[1]
3743
}
38-
return runCommit(cmd.Context(), dockerCli, &options)
44+
return runCommit(cmd.Context(), dockerCLI, &options)
3945
},
4046
Annotations: map[string]string{
4147
"aliases": "docker container commit, docker commit",
4248
},
43-
ValidArgsFunction: completion.ContainerNames(dockerCli, false),
49+
ValidArgsFunction: completion.ContainerNames(dockerCLI, false),
4450
}
4551

4652
flags := cmd.Flags()

cli/command/container/commit_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func TestRunCommit(t *testing.T) {
2929
},
3030
})
3131

32-
cmd := NewCommitCommand(cli)
32+
cmd := newCommitCommand(cli)
3333
cmd.SetOut(io.Discard)
3434
cmd.SetArgs(
3535
[]string{
@@ -60,7 +60,7 @@ func TestRunCommitClientError(t *testing.T) {
6060
},
6161
})
6262

63-
cmd := NewCommitCommand(cli)
63+
cmd := newCommitCommand(cli)
6464
cmd.SetOut(io.Discard)
6565
cmd.SetErr(io.Discard)
6666
cmd.SetArgs([]string{"container-id"})

cli/command/container/completion_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func TestCompletePid(t *testing.T) {
5959
cli := test.NewFakeCli(&fakeClient{
6060
containerListFunc: tc.containerListFunc,
6161
})
62-
completions, directive := completePid(cli)(NewRunCommand(cli), nil, tc.toComplete)
62+
completions, directive := completePid(cli)(newRunCommand(cli), nil, tc.toComplete)
6363
assert.Check(t, is.DeepEqual(completions, tc.expectedCompletions))
6464
assert.Check(t, is.Equal(directive, tc.expectedDirective))
6565
})

cli/command/container/cp.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,13 @@ func copyProgress(ctx context.Context, dst io.Writer, header string, total *int6
122122
}
123123

124124
// NewCopyCommand creates a new `docker cp` command
125-
func NewCopyCommand(dockerCli command.Cli) *cobra.Command {
125+
//
126+
// Deprecated: Do not import commands directly. They will be removed in a future release.
127+
func NewCopyCommand(dockerCLI command.Cli) *cobra.Command {
128+
return newCopyCommand(dockerCLI)
129+
}
130+
131+
func newCopyCommand(dockerCLI command.Cli) *cobra.Command {
126132
var opts copyOptions
127133

128134
cmd := &cobra.Command{
@@ -147,9 +153,9 @@ container source to stdout.`,
147153
opts.destination = args[1]
148154
if !cmd.Flag("quiet").Changed {
149155
// User did not specify "quiet" flag; suppress output if no terminal is attached
150-
opts.quiet = !dockerCli.Out().IsTerminal()
156+
opts.quiet = !dockerCLI.Out().IsTerminal()
151157
}
152-
return runCopy(cmd.Context(), dockerCli, opts)
158+
return runCopy(cmd.Context(), dockerCLI, opts)
153159
},
154160
Annotations: map[string]string{
155161
"aliases": "docker container cp, docker cp",

cli/command/container/create.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,13 @@ type createOptions struct {
5252
}
5353

5454
// NewCreateCommand creates a new cobra.Command for `docker create`
55-
func NewCreateCommand(dockerCli command.Cli) *cobra.Command {
55+
//
56+
// Deprecated: Do not import commands directly. They will be removed in a future release.
57+
func NewCreateCommand(dockerCLI command.Cli) *cobra.Command {
58+
return newCreateCommand(dockerCLI)
59+
}
60+
61+
func newCreateCommand(dockerCLI command.Cli) *cobra.Command {
5662
var options createOptions
5763
var copts *containerOptions
5864

@@ -65,12 +71,12 @@ func NewCreateCommand(dockerCli command.Cli) *cobra.Command {
6571
if len(args) > 1 {
6672
copts.Args = args[1:]
6773
}
68-
return runCreate(cmd.Context(), dockerCli, cmd.Flags(), &options, copts)
74+
return runCreate(cmd.Context(), dockerCLI, cmd.Flags(), &options, copts)
6975
},
7076
Annotations: map[string]string{
7177
"aliases": "docker container create, docker create",
7278
},
73-
ValidArgsFunction: completion.ImageNames(dockerCli, -1),
79+
ValidArgsFunction: completion.ImageNames(dockerCLI, -1),
7480
}
7581

7682
flags := cmd.Flags()
@@ -90,10 +96,10 @@ func NewCreateCommand(dockerCli command.Cli) *cobra.Command {
9096
addPlatformFlag(flags, &options.platform)
9197
_ = cmd.RegisterFlagCompletionFunc("platform", completion.Platforms)
9298

93-
flags.BoolVar(&options.untrusted, "disable-content-trust", !dockerCli.ContentTrustEnabled(), "Skip image verification")
99+
flags.BoolVar(&options.untrusted, "disable-content-trust", !dockerCLI.ContentTrustEnabled(), "Skip image verification")
94100
copts = addFlags(flags)
95101

96-
addCompletions(cmd, dockerCli)
102+
addCompletions(cmd, dockerCLI)
97103

98104
flags.VisitAll(func(flag *pflag.Flag) {
99105
// Set a default completion function if none was set. We don't look

cli/command/container/create_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ func TestCreateContainerValidateFlags(t *testing.T) {
206206
},
207207
} {
208208
t.Run(tc.name, func(t *testing.T) {
209-
cmd := NewCreateCommand(test.NewFakeCli(&fakeClient{}))
209+
cmd := newCreateCommand(test.NewFakeCli(&fakeClient{}))
210210
cmd.SetOut(io.Discard)
211211
cmd.SetErr(io.Discard)
212212
cmd.SetArgs(tc.args)
@@ -260,7 +260,7 @@ func TestNewCreateCommandWithContentTrustErrors(t *testing.T) {
260260
},
261261
}, test.EnableContentTrust)
262262
fakeCLI.SetNotaryClient(tc.notaryFunc)
263-
cmd := NewCreateCommand(fakeCLI)
263+
cmd := newCreateCommand(fakeCLI)
264264
cmd.SetOut(io.Discard)
265265
cmd.SetErr(io.Discard)
266266
cmd.SetArgs(tc.args)
@@ -314,7 +314,7 @@ func TestNewCreateCommandWithWarnings(t *testing.T) {
314314
return container.CreateResponse{Warnings: tc.warnings}, nil
315315
},
316316
})
317-
cmd := NewCreateCommand(fakeCLI)
317+
cmd := newCreateCommand(fakeCLI)
318318
cmd.SetOut(io.Discard)
319319
cmd.SetArgs(tc.args)
320320
err := cmd.Execute()
@@ -366,7 +366,7 @@ func TestCreateContainerWithProxyConfig(t *testing.T) {
366366
},
367367
},
368368
})
369-
cmd := NewCreateCommand(fakeCLI)
369+
cmd := newCreateCommand(fakeCLI)
370370
cmd.SetOut(io.Discard)
371371
cmd.SetArgs([]string{"image:tag"})
372372
err := cmd.Execute()

0 commit comments

Comments
 (0)