aboutsummaryrefslogtreecommitdiff
path: root/cmd/podman/images/build.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/podman/images/build.go')
-rw-r--r--cmd/podman/images/build.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/cmd/podman/images/build.go b/cmd/podman/images/build.go
index a4d6614e2..473048834 100644
--- a/cmd/podman/images/build.go
+++ b/cmd/podman/images/build.go
@@ -18,6 +18,7 @@ import (
"github.com/containers/common/pkg/completion"
"github.com/containers/common/pkg/config"
"github.com/containers/image/v5/docker/reference"
+ "github.com/containers/image/v5/types"
encconfig "github.com/containers/ocicrypt/config"
enchelpers "github.com/containers/ocicrypt/helpers"
"github.com/containers/podman/v4/cmd/podman/common"
@@ -205,6 +206,24 @@ func build(cmd *cobra.Command, args []string) error {
return errors.New("'--output' option is not supported in remote mode")
}
+ if buildOpts.Network == "none" {
+ if cmd.Flag("dns").Changed {
+ return errors.New("the --dns option cannot be used with --network=none")
+ }
+ if cmd.Flag("dns-option").Changed {
+ return errors.New("the --dns-option option cannot be used with --network=none")
+ }
+ if cmd.Flag("dns-search").Changed {
+ return errors.New("the --dns-search option cannot be used with --network=none")
+ }
+ }
+
+ if cmd.Flag("network").Changed {
+ if buildOpts.Network != "host" && buildOpts.Isolation == buildahDefine.IsolationChroot.String() {
+ return fmt.Errorf("cannot set --network other than host with --isolation %s", buildOpts.Isolation)
+ }
+ }
+
// Extract container files from the CLI (i.e., --file/-f) first.
var containerFiles []string
for _, f := range buildOpts.File {
@@ -613,6 +632,9 @@ func buildFlagsWrapperToOptions(c *cobra.Command, contextDir string, flags *buil
timestamp := time.Unix(flags.Timestamp, 0).UTC()
opts.Timestamp = &timestamp
}
+ if c.Flag("skip-unused-stages").Changed {
+ opts.SkipUnusedStages = types.NewOptionalBool(flags.SkipUnusedStages)
+ }
return &entities.BuildOptions{BuildOptions: opts}, nil
}