diff --git a/cmd/kubevpn/cmds/dev.go b/cmd/kubevpn/cmds/dev.go index eaa1e4db..debe7f9f 100644 --- a/cmd/kubevpn/cmds/dev.go +++ b/cmd/kubevpn/cmds/dev.go @@ -79,7 +79,6 @@ Startup your kubernetes workloads in local Docker container with same volume、e } } return handler.SshJump(sshConf, cmd.Flags()) - return nil }, RunE: func(cmd *cobra.Command, args []string) error { devOptions.Workload = args[0] @@ -89,6 +88,7 @@ Startup your kubernetes workloads in local Docker container with same volume、e return dev.DoDev(devOptions, cmd.Flags(), f) }, } + cmd.Flags().SortFlags = false cmd.Flags().StringToStringVarP(&devOptions.Headers, "headers", "H", map[string]string{}, "Traffic with special headers with reverse it to local PC, you should startup your service after reverse workloads successfully, If not special, redirect all traffic to local PC, format is k=v, like: k1=v1,k2=v2") cmd.Flags().BoolVar(&config.Debug, "debug", false, "enable debug mode or not, true or false") cmd.Flags().StringVar(&config.Image, "image", config.Image, "use this image to startup container") diff --git a/pkg/dev/option.go b/pkg/dev/option.go index fc4655a2..cde2566b 100644 --- a/pkg/dev/option.go +++ b/pkg/dev/option.go @@ -4,6 +4,7 @@ import ( "github.com/containerd/containerd/platforms" "github.com/docker/docker/api/types/network" "github.com/pkg/errors" + "github.com/wencaiwulue/kubevpn/pkg/util" ) @@ -41,6 +42,13 @@ func mergeDockerOptions(r ConfigList, copts *Options, tempContainerConfig *conta config.platform = &p } + tempContainerConfig.HostConfig.CapAdd = append(tempContainerConfig.HostConfig.CapAdd, config.hostConfig.CapAdd...) + tempContainerConfig.HostConfig.SecurityOpt = append(tempContainerConfig.HostConfig.SecurityOpt, config.hostConfig.SecurityOpt...) + tempContainerConfig.HostConfig.VolumesFrom = append(tempContainerConfig.HostConfig.VolumesFrom, config.hostConfig.VolumesFrom...) + tempContainerConfig.HostConfig.DNS = append(tempContainerConfig.HostConfig.DNS, config.hostConfig.DNS...) + tempContainerConfig.HostConfig.DNSOptions = append(tempContainerConfig.HostConfig.DNSOptions, config.hostConfig.DNSOptions...) + tempContainerConfig.HostConfig.DNSSearch = append(tempContainerConfig.HostConfig.DNSSearch, config.hostConfig.DNSSearch...) + config.hostConfig = tempContainerConfig.HostConfig config.networkingConfig.EndpointsConfig = util.Merge[string, *network.EndpointSettings](tempContainerConfig.NetworkingConfig.EndpointsConfig, config.networkingConfig.EndpointsConfig) @@ -62,7 +70,11 @@ func mergeDockerOptions(r ConfigList, copts *Options, tempContainerConfig *conta if c.User == "" { c.User = config.config.User } + c.Labels = util.Merge[string, string](config.config.Labels, c.Labels) c.Volumes = util.Merge[string, struct{}](c.Volumes, config.config.Volumes) + if c.WorkingDir == "" { + c.WorkingDir = config.config.WorkingDir + } config.config = c