Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var RootCmd = &cobra.Command{ Use: "executor", PersistentPreRunE: func(cmd *cobra.Command, args []string) error { if cmd.Use == "executor" { validateFlags() dir := config.KanikoDir if opts.KanikoDir != constants.DefaultKanikoPath { dir = opts.KanikoDir } if err := checkKanikoDir(dir); err != nil { return err } resolveEnvironmentBuildArgs(opts.BuildArgs, os.Getenv) if err := logging.Configure(logLevel, logFormat, logTimestamp); err != nil { return err } 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") } if err := resolveDockerfilePath(); err != nil { return errors.Wrap(err, "error resolving dockerfile path") } if len(opts.Destinations) == 0 && opts.ImageNameDigestFile != "" { return errors.New("you must provide --destination if setting ImageNameDigestFile") } if len(opts.Destinations) == 0 && opts.ImageNameTagDigestFile != "" { return errors.New("you must provide --destination if setting ImageNameTagDigestFile") } if opts.IgnoreVarRun { logrus.Trace("Adding /var/run to default ignore list") util.AddToDefaultIgnoreList(util.IgnoreListEntry{ Path: "/var/run", PrefixMatchOnly: false, }) } for _, p := range opts.IgnorePaths { util.AddToDefaultIgnoreList(util.IgnoreListEntry{ Path: p, PrefixMatchOnly: false, }) } } return nil }, Run: func(cmd *cobra.Command, args []string) { if !checkContained() { if !force { exit(errors.New("kaniko should only be run inside of a container, run with the --force flag if you are sure you want to continue")) } logrus.Warn("Kaniko is being run outside of a container. This can have dangerous effects on your system") } if !opts.NoPush || opts.CacheRepo != "" { if err := executor.CheckPushPermissions(opts); err != nil { exit(errors.Wrap(err, "error checking push permissions -- make sure you entered the correct tag name, and that you are authenticated correctly, and try again")) } } if err := resolveRelativePaths(); err != nil { exit(errors.Wrap(err, "error resolving relative paths to absolute paths")) } if err := os.Chdir("/"); err != nil { exit(errors.Wrap(err, "error changing to root dir")) } image, err := executor.DoBuild(opts) if err != nil { exit(errors.Wrap(err, "error building image")) } if err := executor.DoPush(image, opts); err != nil { exit(errors.Wrap(err, "error pushing image")) } benchmarkFile := os.Getenv("BENCHMARK_FILE") if benchmarkFile != "" && benchmarkFile != "false" { s, err := timing.JSON() if err != nil { logrus.Warnf("Unable to write benchmark file: %s", err) return } if strings.HasPrefix(benchmarkFile, "gs://") { logrus.Info("Uploading to gcs") if err := buildcontext.UploadToBucket(strings.NewReader(s), benchmarkFile); err != nil { logrus.Infof("Unable to upload %s due to %v", benchmarkFile, err) } logrus.Infof("Benchmark file written at %s", benchmarkFile) } else { f, err := os.Create(benchmarkFile) if err != nil { logrus.Warnf("Unable to create benchmarking file %s: %s", benchmarkFile, err) return } defer f.Close() f.WriteString(s) logrus.Infof("Benchmark file written at %s", benchmarkFile) } } }, }
RootCmd is the kaniko command that is run
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.