From 73c5eac4f089cf41ee95eb25675a63d6c836ebb4 Mon Sep 17 00:00:00 2001 From: Florian Rey Date: Thu, 24 Nov 2016 13:33:42 +0100 Subject: [PATCH] Handle commit author & message the same way --- builder/docker/config.go | 2 ++ builder/docker/driver.go | 2 +- builder/docker/driver_docker.go | 8 +++++++- builder/docker/driver_mock.go | 2 +- builder/docker/step_commit.go | 2 +- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/builder/docker/config.go b/builder/docker/config.go index 62585ae41..e24280432 100644 --- a/builder/docker/config.go +++ b/builder/docker/config.go @@ -32,7 +32,9 @@ type Config struct { RunCommand []string `mapstructure:"run_command"` Volumes map[string]string Privileged bool `mapstructure:"privileged"` + Author string Changes []string + Message string // This is used to login to dockerhub to pull a private base container. For // pushing to dockerhub, see the docker post-processors diff --git a/builder/docker/driver.go b/builder/docker/driver.go index 1d238513d..0eda0a604 100644 --- a/builder/docker/driver.go +++ b/builder/docker/driver.go @@ -11,7 +11,7 @@ import ( // a mock driver can be shimmed in. type Driver interface { // Commit the container to a tag - Commit(id string, changes []string) (string, error) + Commit(id string, author string, changes []string, message string) (string, error) // Delete an image that is imported into Docker DeleteImage(id string) error diff --git a/builder/docker/driver_docker.go b/builder/docker/driver_docker.go index dfee0ba93..f603b1892 100644 --- a/builder/docker/driver_docker.go +++ b/builder/docker/driver_docker.go @@ -42,14 +42,20 @@ func (d *DockerDriver) DeleteImage(id string) error { return nil } -func (d *DockerDriver) Commit(id string, changes []string) (string, error) { +func (d *DockerDriver) Commit(id string, author string, changes []string, message string) (string, error) { var stdout bytes.Buffer var stderr bytes.Buffer args := []string{"commit"} + if author != "" { + args = append(args, "--author", author) + } for _, change := range changes { args = append(args, "--change", change) } + if message != "" { + args = append(args, "--message", message) + } args = append(args, id) log.Printf("Committing container with args: %v", args) diff --git a/builder/docker/driver_mock.go b/builder/docker/driver_mock.go index 918063f53..57a02b691 100644 --- a/builder/docker/driver_mock.go +++ b/builder/docker/driver_mock.go @@ -76,7 +76,7 @@ type MockDriver struct { VersionVersion string } -func (d *MockDriver) Commit(id string, changes []string) (string, error) { +func (d *MockDriver) Commit(id string, author string, changes []string, message string) (string, error) { d.CommitCalled = true d.CommitContainerId = id return d.CommitImageId, d.CommitErr diff --git a/builder/docker/step_commit.go b/builder/docker/step_commit.go index 8d664c7ed..2e0281bd4 100644 --- a/builder/docker/step_commit.go +++ b/builder/docker/step_commit.go @@ -18,7 +18,7 @@ func (s *StepCommit) Run(state multistep.StateBag) multistep.StepAction { ui := state.Get("ui").(packer.Ui) ui.Say("Committing the container") - imageId, err := driver.Commit(containerId, config.Changes) + imageId, err := driver.Commit(containerId, config.Author, config.Changes, config.Message) if err != nil { state.Put("error", err) ui.Error(err.Error())