Переглянути джерело

Merge pull request #2032 from dotcloud/move-rm-to-client

Move run -rm to the cli only
Michael Crosby 11 роки тому
батько
коміт
31fd11860b
2 змінених файлів з 9 додано та 7 видалено
  1. 9 0
      commands.go
  2. 0 7
      container.go

+ 9 - 0
commands.go

@@ -1433,6 +1433,9 @@ func (cli *DockerCli) CmdRun(args ...string) error {
 		return nil
 	}
 
+	flRm := cmd.Lookup("rm")
+	autoRemove, _ := strconv.ParseBool(flRm.Value.String())
+
 	var containerIDFile *os.File
 	if len(hostConfig.ContainerIDFile) > 0 {
 		if _, err := ioutil.ReadFile(hostConfig.ContainerIDFile); err == nil {
@@ -1580,6 +1583,12 @@ func (cli *DockerCli) CmdRun(args ...string) error {
 		if err != nil {
 			return err
 		}
+		if autoRemove {
+			_, _, err = cli.call("DELETE", "/containers/"+runResult.ID, nil)
+			if err != nil {
+				return err
+			}
+		}
 		if status != 0 {
 			return &utils.StatusError{Status: status}
 		}

+ 0 - 7
container.go

@@ -90,7 +90,6 @@ type HostConfig struct {
 	Binds           []string
 	ContainerIDFile string
 	LxcConf         []KeyValuePair
-	AutoRemove      bool
 }
 
 type BindMap struct {
@@ -248,7 +247,6 @@ func ParseRun(args []string, capabilities *Capabilities) (*Config, *HostConfig,
 		Binds:           binds,
 		ContainerIDFile: *flContainerIDFile,
 		LxcConf:         lxcConf,
-		AutoRemove:      *flAutoRemove,
 	}
 
 	if capabilities != nil && *flMemory > 0 && !capabilities.SwapLimit {
@@ -1027,11 +1025,6 @@ func (container *Container) monitor(hostConfig *HostConfig) {
 		// FIXME: why are we serializing running state to disk in the first place?
 		//log.Printf("%s: Failed to dump configuration to the disk: %s", container.ID, err)
 	}
-	if hostConfig != nil {
-		if hostConfig.AutoRemove {
-			container.runtime.Destroy(container)
-		}
-	}
 }
 
 func (container *Container) kill() error {