diff --git a/main.go b/main.go index 6e61c7a..b16f035 100644 --- a/main.go +++ b/main.go @@ -118,6 +118,11 @@ func main() { Usage: "squash the layers at build time", EnvVar: "PLUGIN_SQUASH", }, + cli.BoolTFlag{ + Name: "pull-image", + Usage: "force pull base image at build time", + EnvVar: "PLUGIN_PULL_IMAGE", + }, cli.BoolFlag{ Name: "compress", Usage: "compress the build context using gzip", @@ -172,6 +177,7 @@ func run(c *cli.Context) error { Tags: c.StringSlice("tags"), Args: c.StringSlice("args"), Squash: c.Bool("squash"), + Pull: c.BoolT("pull-image"), Compress: c.Bool("compress"), Repo: c.String("repo"), }, diff --git a/plugin.go b/plugin.go index e2c9237..f65921a 100644 --- a/plugin.go +++ b/plugin.go @@ -47,6 +47,7 @@ type ( Tags []string // Docker build tags Args []string // Docker build args Squash bool // Docker build squash + Pull bool // Docker build pull Compress bool // Docker build compress Repo string // Docker build repository } @@ -185,9 +186,8 @@ func commandInfo() *exec.Cmd { // helper function to create the docker build command. func commandBuild(build Build) *exec.Cmd { - args := []string { + args := []string{ "build", - "--pull=true", "--rm=true", "-f", build.Dockerfile, "-t", build.Name, @@ -200,6 +200,9 @@ func commandBuild(build Build) *exec.Cmd { if build.Compress { args = append(args, "--compress") } + if build.Pull { + args = append(args, "--pull=true") + } for _, arg := range build.Args { args = append(args, "--build-arg", arg) }