Skip to content

Commit 96d6142

Browse files
authored
when destroy container, should remove it also (#530) (#532)
1 parent 0cc34ef commit 96d6142

File tree

9 files changed

+33
-110
lines changed

9 files changed

+33
-110
lines changed

container_runtimes/docker/http/api.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ func (api *API) StartContainer(ctx context.Context, name string, image string, b
488488
return errors.Wrap(err, "could not get logs of container "+createRes.ID)
489489
}
490490

491-
if err := api.RemoveContainer(createRes.ID); err != nil {
491+
if err := api.RemoveContainer(ctx, createRes.ID); err != nil {
492492
msg := fmt.Sprintf("remove container %s failed, and container started with logs: %s", createRes.ID, string(logs))
493493
return errors.Wrap(err, msg)
494494
}
@@ -527,7 +527,7 @@ func (api *API) logs(id string) ([]byte, error) {
527527
}
528528

529529
// RemoveContainer remove a container
530-
func (api *API) RemoveContainer(id string) error {
530+
func (api *API) RemoveContainer(ctx context.Context, id string) error {
531531
query := url.Values{}
532532
query.Set("v", "true")
533533
path := fmt.Sprintf("/containers/%s?%s", id, query.Encode())

container_runtimes/docker/sdk/docker.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,11 @@ func (d *Docker) Version(ctx context.Context) (string, error) {
244244
return ping.APIVersion, nil
245245
}
246246

247+
// RemoveContainer remove container
248+
func (d *Docker) RemoveContainer(ctx context.Context, id string) error {
249+
panic("no implemented yet")
250+
}
251+
247252
var (
248253
_ containerruntimes.ContainerRuntime = &Docker{}
249254
)

container_runtimes/mocks/runtime.go

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

container_runtimes/runtimes.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ type ContainerRuntime interface {
1414
TagImage(ctx context.Context, name string, tag string) error
1515
StartContainer(ctx context.Context, name string, image string, bindings []types.PortBinding) error
1616
StopContainer(ctx context.Context, name string) error
17+
RemoveContainer(ctx context.Context, name string) error
1718
InspectContainer(ctx context.Context, name string, container interface{}) error
1819
ListContainer(ctx context.Context, filter string) ([]types.Service, error)
1920
Version(ctx context.Context) (string, error)

driver/docker/docker.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,10 @@ func (d *Driver) Destroy(ctx context.Context, name string) (err error) {
5656
defer func() {
5757
spinner.Stop("destroying "+name, err)
5858
}()
59-
return d.dockerClient.StopContainer(ctx, name)
59+
if err := d.dockerClient.StopContainer(ctx, name); err != nil {
60+
return err
61+
}
62+
return d.dockerClient.RemoveContainer(ctx, name)
6063
}
6164

6265
// GetStatus get a service status

driver/docker/docker_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ func TestDriverDestroy(t *testing.T) {
5555
ctx := context.Background()
5656
name := "name"
5757
dockerClient.EXPECT().StopContainer(ctx, name).Return(nil)
58+
dockerClient.EXPECT().RemoveContainer(ctx, name).Return(nil)
5859
if err := n.Destroy(ctx, name); err != nil {
5960
t.Fatal(err)
6061
}

fx.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
2020
)
2121

22-
const version = "0.9.41"
22+
const version = "0.9.42"
2323

2424
func init() {
2525
go checkForUpdate()

go.mod

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@ require (
66
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect
77
github.com/Microsoft/go-winio v0.4.14 // indirect
88
github.com/apex/log v1.1.4
9-
github.com/briandowns/spinner v1.11.1
109
github.com/cheggaaa/pb/v3 v3.0.4
1110
github.com/docker/distribution v2.7.1+incompatible // indirect
1211
github.com/docker/docker v0.0.0-20190313072916-46036c230805
1312
github.com/docker/go-connections v0.4.0
1413
github.com/docker/go-units v0.3.3 // indirect
1514
github.com/dsnet/compress v0.0.1 // indirect
1615
github.com/gin-gonic/gin v1.6.3
17-
github.com/gobuffalo/envy v1.8.1 // indirect
1816
github.com/gobuffalo/packd v1.0.0
1917
github.com/gobuffalo/packr/v2 v2.8.0
2018
github.com/golang/mock v1.4.3
@@ -38,9 +36,7 @@ require (
3836
github.com/pierrec/lz4 v0.0.0-20190222153722-062282ea0dcf // indirect
3937
github.com/pkg/errors v0.9.1
4038
github.com/spf13/pflag v1.0.5 // indirect
41-
github.com/spf13/viper v1.6.3
4239
github.com/stretchr/testify v1.5.1
43-
github.com/ugorji/go v1.1.7 // indirect
4440
github.com/urfave/cli v1.22.4
4541
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect
4642
golang.org/x/crypto v0.0.0-20191219195013-becbf705a915 // indirect

0 commit comments

Comments
 (0)