Skip to content

Commit 38595fe

Browse files
committed
Unexport container commands
This patch deprecates exported container commands and moves the implementation details to an unexported function. Commands that are affected include: - container.NewRunCommand - container.NewExecCommand - container.NewPsCommand - container.NewContainerCommand - container.NewAttachCommand - container.NewCommitCommand - container.NewCopyCommand - container.NewCreateCommand - container.NewDiffCommand - container.NewExportCommand - container.NewKillCommand - container.NewLogsCommand - container.NewPauseCommand - container.NewPortCommand - container.NewRenameCommand - container.NewRestartCommand - container.NewRmCommand - container.NewStartCommand - container.NewStatsCommand - container.NewStopCommand - container.NewTopCommand - container.NewUnpauseCommand - container.NewUpdateCommand - container.NewWaitCommand - container.NewPruneCommand Signed-off-by: Alano Terblanche <[email protected]>
1 parent 4c3fa4a commit 38595fe

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)