From 008bbaf47bf51feba943cee006c49cf27269913a Mon Sep 17 00:00:00 2001 From: Seth Pollack Date: Thu, 26 Oct 2017 12:26:26 -0400 Subject: [PATCH] make cache-from an array --- cmd/drone-docker/main.go | 3 ++- docker.go | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/cmd/drone-docker/main.go b/cmd/drone-docker/main.go index 36ad2f9..7028cf8 100644 --- a/cmd/drone-docker/main.go +++ b/cmd/drone-docker/main.go @@ -150,6 +150,7 @@ func main() { Name: "target", Usage: "build target", EnvVar: "PLUGIN_TARGET", + }, cli.StringSliceFlag{ Name: "cache-from", Usage: "cache from", @@ -249,7 +250,7 @@ func run(c *cli.Context) error { Target: c.String("target"), Squash: c.Bool("squash"), Pull: c.BoolT("pull-image"), - CacheFrom: c.String("cache-from"), + CacheFrom: c.StringSlice("cache-from"), Compress: c.Bool("compress"), Repo: c.String("repo"), Labels: c.StringSlice("custom-labels"), diff --git a/docker.go b/docker.go index 03e1105..0a3cfa5 100644 --- a/docker.go +++ b/docker.go @@ -47,7 +47,7 @@ type ( Target string // Docker build target Squash bool // Docker build squash Pull bool // Docker build pull - CacheFrom string // Docker build cache-from + CacheFrom []string // Docker build cache-from Compress bool // Docker build compress Repo string // Docker build repository LabelSchema []string // label-schema Label map @@ -106,8 +106,8 @@ func (p Plugin) Exec() error { } // pre-pull cache image - if p.Build.CacheFrom != "" { - cmd := commandPull(p.Build.CacheFrom) + for _, img := range p.Build.CacheFrom { + cmd := commandPull(img) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr trace(cmd) @@ -218,8 +218,8 @@ func commandBuild(build Build) *exec.Cmd { if build.NoCache { args = append(args, "--no-cache") } - if build.CacheFrom != "" { - args = append(args, "--cache-from", build.CacheFrom) + for _, arg := range build.CacheFrom { + args = append(args, "--cache-from", arg) } for _, arg := range build.ArgsEnv { addProxyValue(&build, arg)