Skip to content

Commit 6ab41d6

Browse files
authored
Merge pull request #11060 from Juneezee/refactor/redundant-len-check
refactor(cmd/compose/run): remove redundant `len` check
2 parents b8773ad + 6c345b3 commit 6ab41d6

File tree

3 files changed

+23
-11
lines changed

3 files changed

+23
-11
lines changed

cmd/compose/run.go

+8-10
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,10 @@ func (options runOptions) apply(project *types.Project) error {
8080

8181
target.Tty = !options.noTty
8282
target.StdinOpen = options.interactive
83+
84+
// --service-ports and --publish are incompatible
8385
if !options.servicePorts {
8486
target.Ports = []types.ServicePortConfig{}
85-
}
86-
if len(options.publish) > 0 {
87-
target.Ports = []types.ServicePortConfig{}
8887
for _, p := range options.publish {
8988
config, err := types.ParsePortConfig(p)
9089
if err != nil {
@@ -93,14 +92,13 @@ func (options runOptions) apply(project *types.Project) error {
9392
target.Ports = append(target.Ports, config...)
9493
}
9594
}
96-
if len(options.volumes) > 0 {
97-
for _, v := range options.volumes {
98-
volume, err := loader.ParseVolume(v)
99-
if err != nil {
100-
return err
101-
}
102-
target.Volumes = append(target.Volumes, volume)
95+
96+
for _, v := range options.volumes {
97+
volume, err := loader.ParseVolume(v)
98+
if err != nil {
99+
return err
103100
}
101+
target.Volumes = append(target.Volumes, volume)
104102
}
105103

106104
for i, s := range project.Services {

pkg/e2e/compose_run_test.go

+9-1
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,18 @@ func TestLocalComposeRun(t *testing.T) {
9696
})
9797

9898
t.Run("compose run --publish", func(t *testing.T) {
99-
c.RunDockerComposeCmd(t, "-f", "./fixtures/run-test/compose.yaml", "run", "--publish", "8081:80", "-d", "back",
99+
c.RunDockerComposeCmd(t, "-f", "./fixtures/run-test/ports.yaml", "run", "--publish", "8081:80", "-d", "back",
100100
"/bin/sh", "-c", "sleep 1")
101101
res := c.RunDockerCmd(t, "ps")
102102
assert.Assert(t, strings.Contains(res.Stdout(), "8081->80/tcp"), res.Stdout())
103+
assert.Assert(t, !strings.Contains(res.Stdout(), "8082->80/tcp"), res.Stdout())
104+
})
105+
106+
t.Run("compose run --service-ports", func(t *testing.T) {
107+
c.RunDockerComposeCmd(t, "-f", "./fixtures/run-test/ports.yaml", "run", "--service-ports", "-d", "back",
108+
"/bin/sh", "-c", "sleep 1")
109+
res := c.RunDockerCmd(t, "ps")
110+
assert.Assert(t, strings.Contains(res.Stdout(), "8082->80/tcp"), res.Stdout())
103111
})
104112

105113
t.Run("compose run orphan", func(t *testing.T) {

pkg/e2e/fixtures/run-test/ports.yaml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
version: '3.8'
2+
services:
3+
back:
4+
image: alpine
5+
ports:
6+
- 8082:80

0 commit comments

Comments
 (0)