// CommitContainer commits a container to an image with a specific tag. // The new image ID is returned func (d *stiDocker) CommitContainer(opts CommitContainerOptions) (string, error) { repository, tag := docker.ParseRepositoryTag(opts.Repository) dockerOpts := docker.CommitContainerOptions{ Container: opts.ContainerID, Repository: repository, Tag: tag, } if opts.Command != nil || opts.Entrypoint != nil { config := docker.Config{ Cmd: opts.Command, Entrypoint: opts.Entrypoint, Env: opts.Env, Labels: opts.Labels, User: opts.User, } dockerOpts.Run = &config glog.V(2).Infof("Committing container with dockerOpts: %+v, config: %+v", dockerOpts, config) } image, err := d.client.CommitContainer(dockerOpts) if err == nil && image != nil { return image.ID, nil } return "", err }