|
@@ -1,6 +1,7 @@
|
|
package client
|
|
package client
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
+ "encoding/json"
|
|
"errors"
|
|
"errors"
|
|
"fmt"
|
|
"fmt"
|
|
|
|
|
|
@@ -10,6 +11,7 @@ import (
|
|
"github.com/docker/docker/opts"
|
|
"github.com/docker/docker/opts"
|
|
flag "github.com/docker/docker/pkg/mflag"
|
|
flag "github.com/docker/docker/pkg/mflag"
|
|
"github.com/docker/docker/registry"
|
|
"github.com/docker/docker/registry"
|
|
|
|
+ "github.com/docker/docker/runconfig"
|
|
)
|
|
)
|
|
|
|
|
|
// CmdCommit creates a new image from a container's changes.
|
|
// CmdCommit creates a new image from a container's changes.
|
|
@@ -56,6 +58,14 @@ func (cli *DockerCli) CmdCommit(args ...string) error {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ var config *runconfig.Config
|
|
|
|
+ if *flConfig != "" {
|
|
|
|
+ config = &runconfig.Config{}
|
|
|
|
+ if err := json.Unmarshal([]byte(*flConfig), config); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
options := types.ContainerCommitOptions{
|
|
options := types.ContainerCommitOptions{
|
|
ContainerID: name,
|
|
ContainerID: name,
|
|
RepositoryName: repositoryName,
|
|
RepositoryName: repositoryName,
|
|
@@ -64,7 +74,7 @@ func (cli *DockerCli) CmdCommit(args ...string) error {
|
|
Author: *flAuthor,
|
|
Author: *flAuthor,
|
|
Changes: flChanges.GetAll(),
|
|
Changes: flChanges.GetAll(),
|
|
Pause: *flPause,
|
|
Pause: *flPause,
|
|
- JSONConfig: *flConfig,
|
|
|
|
|
|
+ Config: config,
|
|
}
|
|
}
|
|
|
|
|
|
response, err := cli.client.ContainerCommit(options)
|
|
response, err := cli.client.ContainerCommit(options)
|