diff --git a/cmd/podman/common/netflags.go b/cmd/podman/common/netflags.go index e7aa265d1e..90f05ab15f 100644 --- a/cmd/podman/common/netflags.go +++ b/cmd/podman/common/netflags.go @@ -39,6 +39,11 @@ func DefineNetFlags(cmd *cobra.Command) { "Set custom DNS options", ) _ = cmd.RegisterFlagCompletionFunc(dnsOptFlagName, completion.AutocompleteNone) + netFlags.StringSlice( + "dns-option", containerConfig.DNSOptions(), + "Docker compatibility option== --dns-opt", + ) + _ = netFlags.MarkHidden("dns-option") dnsSearchFlagName := "dns-search" netFlags.StringSlice( @@ -146,6 +151,14 @@ func NetFlagsToNetOptions(opts *entities.NetOptions, flags pflag.FlagSet) (*enti opts.DNSOptions = options } + if flags.Changed("dns-option") { + options, err := flags.GetStringSlice("dns-option") + if err != nil { + return nil, err + } + opts.DNSOptions = append(opts.DNSOptions, options...) + } + if flags.Changed("dns-search") { dnsSearches, err := flags.GetStringSlice("dns-search") if err != nil { diff --git a/test/system/500-networking.bats b/test/system/500-networking.bats index b9a173c2ad..5da7523f31 100644 --- a/test/system/500-networking.bats +++ b/test/system/500-networking.bats @@ -767,4 +767,14 @@ EOF is "$output" "" "Should print no output" } +@test "podman network rm --dns-option " { + dns_opt=dns$(random_string) + run_podman run --rm --dns-opt=${dns_opt} $IMAGE cat /etc/resolv.conf + is "$output" ".*options ${dns_opt}" "--dns-opt was added" + + dns_opt=dns$(random_string) + run_podman run --rm --dns-option=${dns_opt} $IMAGE cat /etc/resolv.conf + is "$output" ".*options ${dns_opt}" "--dns-option was added" +} + # vim: filetype=sh