Browse Source

Merge pull request #16966 from MHBauer/image-refactor

refactor use of container struct from daemon
Doug Davis 9 years ago
parent
commit
32ead68e9f
2 changed files with 10 additions and 5 deletions
  1. 4 4
      api/server/router/local/image.go
  2. 6 1
      builder/dockerfile/builder.go

+ 4 - 4
api/server/router/local/image.go

@@ -16,6 +16,7 @@ import (
 	"github.com/docker/docker/builder/dockerfile"
 	"github.com/docker/docker/cliconfig"
 	"github.com/docker/docker/daemon/daemonbuilder"
+	derr "github.com/docker/docker/errors"
 	"github.com/docker/docker/graph"
 	"github.com/docker/docker/graph/tags"
 	"github.com/docker/docker/pkg/archive"
@@ -63,12 +64,11 @@ func (s *router) postCommit(ctx context.Context, w http.ResponseWriter, r *http.
 		Config:  c,
 	}
 
-	container, err := s.daemon.Get(cname)
-	if err != nil {
-		return err
+	if !s.daemon.Exists(cname) {
+		return derr.ErrorCodeNoSuchContainer.WithArgs(cname)
 	}
 
-	imgID, err := dockerfile.Commit(container, s.daemon, commitCfg)
+	imgID, err := dockerfile.Commit(cname, s.daemon, commitCfg)
 	if err != nil {
 		return err
 	}

+ 6 - 1
builder/dockerfile/builder.go

@@ -256,7 +256,12 @@ func BuildFromConfig(config *runconfig.Config, changes []string) (*runconfig.Con
 
 // Commit will create a new image from a container's changes
 // TODO: remove daemon, make Commit a method on *Builder ?
-func Commit(container *daemon.Container, d *daemon.Daemon, c *CommitConfig) (string, error) {
+func Commit(containerName string, d *daemon.Daemon, c *CommitConfig) (string, error) {
+	container, err := d.Get(containerName)
+	if err != nil {
+		return "", err
+	}
+
 	// It is not possible to commit a running container on Windows
 	if runtime.GOOS == "windows" && container.IsRunning() {
 		return "", fmt.Errorf("Windows does not support commit of a running container")