mirror of https://github.com/docker/cli.git
Add custom DNS settings to service definition
This fix tries to fix the issue raised in 24391 about allowing custom DNS settings to service definition. This fix adds `DNSConfig` (`Nameservers`, `Options`, `Search`) to service definition, as well as `--dns`, `--dns-opt`, and `dns-search` to `service create`. An integration test has been added to cover the changes in this fix. This fix fixes 24391. A PR in swarmkit will be created separately. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This commit is contained in:
parent
a3d806f0bb
commit
f40b12d0f7
|
@ -41,6 +41,9 @@ func newCreateCommand(dockerCli *command.DockerCli) *cobra.Command {
|
|||
flags.StringSliceVar(&opts.networks, flagNetwork, []string{}, "Network attachments")
|
||||
flags.VarP(&opts.endpoint.ports, flagPublish, "p", "Publish a port as a node port")
|
||||
flags.StringSliceVar(&opts.groups, flagGroup, []string{}, "Set one or more supplementary user groups for the container")
|
||||
flags.Var(&opts.dns, flagDNS, "Set custom DNS servers")
|
||||
flags.Var(&opts.dnsOptions, flagDNSOptions, "Set DNS options")
|
||||
flags.Var(&opts.dnsSearch, flagDNSSearch, "Set custom DNS search domains")
|
||||
|
||||
flags.SetInterspersed(false)
|
||||
return cmd
|
||||
|
|
|
@ -296,6 +296,9 @@ type serviceOptions struct {
|
|||
groups []string
|
||||
tty bool
|
||||
mounts opts.MountOpt
|
||||
dns opts.ListOpts
|
||||
dnsSearch opts.ListOpts
|
||||
dnsOptions opts.ListOpts
|
||||
|
||||
resources resourceOptions
|
||||
stopGrace DurationOpt
|
||||
|
@ -326,6 +329,9 @@ func newServiceOptions() *serviceOptions {
|
|||
ports: opts.NewListOpts(ValidatePort),
|
||||
},
|
||||
logDriver: newLogDriverOptions(),
|
||||
dns: opts.NewListOpts(opts.ValidateIPAddress),
|
||||
dnsOptions: opts.NewListOpts(nil),
|
||||
dnsSearch: opts.NewListOpts(opts.ValidateDNSSearch),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -368,6 +374,11 @@ func (opts *serviceOptions) ToService() (swarm.ServiceSpec, error) {
|
|||
Groups: opts.groups,
|
||||
TTY: opts.tty,
|
||||
Mounts: opts.mounts.Value(),
|
||||
DNSConfig: &swarm.DNSConfig{
|
||||
Nameservers: opts.dns.GetAll(),
|
||||
Search: opts.dnsSearch.GetAll(),
|
||||
Options: opts.dnsOptions.GetAll(),
|
||||
},
|
||||
StopGracePeriod: opts.stopGrace.Value(),
|
||||
},
|
||||
Networks: convertNetworks(opts.networks),
|
||||
|
@ -463,6 +474,9 @@ const (
|
|||
flagContainerLabel = "container-label"
|
||||
flagContainerLabelRemove = "container-label-rm"
|
||||
flagContainerLabelAdd = "container-label-add"
|
||||
flagDNS = "dns"
|
||||
flagDNSOptions = "dns-opt"
|
||||
flagDNSSearch = "dns-search"
|
||||
flagEndpointMode = "endpoint-mode"
|
||||
flagHostname = "hostname"
|
||||
flagEnv = "env"
|
||||
|
|
Loading…
Reference in New Issue