diff --git a/cmd/drone-docker/main.go b/cmd/drone-docker/main.go index 636a625..243d86a 100644 --- a/cmd/drone-docker/main.go +++ b/cmd/drone-docker/main.go @@ -146,6 +146,11 @@ func main() { Usage: "build args", EnvVar: "PLUGIN_BUILD_ARGS_FROM_ENV", }, + cli.StringFlag{ + Name: "target", + Usage: "build target", + EnvVar: "PLUGIN_TARGET", + }, cli.BoolFlag{ Name: "squash", Usage: "squash the layers at build time", @@ -232,6 +237,7 @@ func run(c *cli.Context) error { Tags: c.StringSlice("tags"), Args: c.StringSlice("args"), ArgsEnv: c.StringSlice("args-from-env"), + Target: c.String("target"), Squash: c.Bool("squash"), Pull: c.BoolT("pull-image"), Compress: c.Bool("compress"), diff --git a/docker.go b/docker.go index 7990de0..0a8bc83 100644 --- a/docker.go +++ b/docker.go @@ -44,6 +44,7 @@ type ( Tags []string // Docker build tags Args []string // Docker build args ArgsEnv []string // Docker build args from env + Target string // Docker build target Squash bool // Docker build squash Pull bool // Docker build pull Compress bool // Docker build compress @@ -208,6 +209,9 @@ func commandBuild(build Build) *exec.Cmd { for _, arg := range build.Args { args = append(args, "--build-arg", arg) } + if build.Target != "" { + args = append(args, "--target", build.Target) + } labelSchema := []string{ fmt.Sprintf("build-date=%s", time.Now().Format(time.RFC3339)),