Check --cache-repo is provided with --cache and --no-push
As described in #373, kaniko panics when provided with --cache and --no-push since it tries to infer a cache repo from the destination, which doesn't exist. To fix this, I added a check to make sure --cache-repo is passed in when both these flags are provided.
This commit is contained in:
parent
d904a4c872
commit
c4b35c7298
|
|
@ -55,6 +55,9 @@ var RootCmd = &cobra.Command{
|
|||
if !opts.NoPush && len(opts.Destinations) == 0 {
|
||||
return errors.New("You must provide --destination, or use --no-push")
|
||||
}
|
||||
if err := cacheFlagsValid(); err != nil {
|
||||
return errors.Wrap(err, "cache flags invalid")
|
||||
}
|
||||
if err := resolveSourceContext(); err != nil {
|
||||
return errors.Wrap(err, "error resolving source context")
|
||||
}
|
||||
|
|
@ -112,6 +115,19 @@ func checkContained() bool {
|
|||
return err == nil
|
||||
}
|
||||
|
||||
// cacheFlagsValid makes sure the flags passed in related to caching are valid
|
||||
func cacheFlagsValid() error {
|
||||
if !opts.Cache {
|
||||
return nil
|
||||
}
|
||||
// If --cache=true and --no-push=true, then cache repo must be provided
|
||||
// since cache can't be inferred from destination
|
||||
if opts.CacheRepo == "" && opts.NoPush {
|
||||
return errors.New("if using cache with --no-push, specify cache repo with --cache-repo")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// resolveDockerfilePath resolves the Dockerfile path to an absolute path
|
||||
func resolveDockerfilePath() error {
|
||||
if util.FilepathExists(opts.DockerfilePath) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue