Add hack to preserve Dockerfile RUN cache compatibility after mount cache bugfix
Signed-off-by: Aaron Lehmann <alehmann@netflix.com>v0.9
parent
6ab9eeac79
commit
61bb15a47f
|
@ -97,6 +97,22 @@ func (e *execOp) CacheMap(ctx context.Context, g session.Group, index int) (*sol
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Special case for cache compatibility with buggy versions that wrongly
|
||||||
|
// excluded Exec.Mounts: for the default case of one root mount (i.e. RUN
|
||||||
|
// inside a Dockerfile), do not include the mount when generating the cache
|
||||||
|
// map.
|
||||||
|
if len(op.Mounts) == 1 &&
|
||||||
|
op.Mounts[0].Dest == "/" &&
|
||||||
|
op.Mounts[0].Selector == "" &&
|
||||||
|
!op.Mounts[0].Readonly &&
|
||||||
|
op.Mounts[0].MountType == pb.MountType_BIND &&
|
||||||
|
op.Mounts[0].CacheOpt == nil &&
|
||||||
|
op.Mounts[0].SSHOpt == nil &&
|
||||||
|
op.Mounts[0].SecretOpt == nil &&
|
||||||
|
op.Mounts[0].ResultID == "" {
|
||||||
|
op.Mounts = nil
|
||||||
|
}
|
||||||
|
|
||||||
dt, err := json.Marshal(struct {
|
dt, err := json.Marshal(struct {
|
||||||
Type string
|
Type string
|
||||||
Exec *pb.ExecOp
|
Exec *pb.ExecOp
|
||||||
|
|
Loading…
Reference in New Issue