add cache-from
This commit is contained in:
committed by
Ryan Sullivan
parent
9589237541
commit
a48b59645a
17
docker.go
17
docker.go
@@ -47,6 +47,7 @@ type (
|
||||
Target string // Docker build target
|
||||
Squash bool // Docker build squash
|
||||
Pull bool // Docker build pull
|
||||
CacheFrom string // Docker build cache-from
|
||||
Compress bool // Docker build compress
|
||||
Repo string // Docker build repository
|
||||
LabelSchema []string // label-schema Label map
|
||||
@@ -104,6 +105,15 @@ func (p Plugin) Exec() error {
|
||||
fmt.Println("Registry credentials not provided. Guest mode enabled.")
|
||||
}
|
||||
|
||||
// pre-pull cache image
|
||||
if p.Build.CacheFrom != "" {
|
||||
cmd := commandPull(p.Build.CacheFrom)
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
trace(cmd)
|
||||
cmd.Run()
|
||||
}
|
||||
|
||||
if p.Build.Squash && !p.Daemon.Experimental {
|
||||
fmt.Println("Squash build flag is only available when Docker deamon is started with experimental flag. Ignoring...")
|
||||
p.Build.Squash = false
|
||||
@@ -162,6 +172,10 @@ func commandLogin(login Login) *exec.Cmd {
|
||||
)
|
||||
}
|
||||
|
||||
func commandPull(repo string) *exec.Cmd {
|
||||
return exec.Command(dockerExe, "pull", repo)
|
||||
}
|
||||
|
||||
func commandLoginEmail(login Login) *exec.Cmd {
|
||||
return exec.Command(
|
||||
dockerExe, "login",
|
||||
@@ -204,6 +218,9 @@ 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.ArgsEnv {
|
||||
addProxyValue(&build, arg)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user