mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-01 00:23:56 +08:00 
			
		
		
		
	vendor: bump compose-go to v1.5.0
Signed-off-by: Nick Sieger <nick@nicksieger.com>
This commit is contained in:
		
							
								
								
									
										3
									
								
								vendor/github.com/compose-spec/compose-go/loader/full-example.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/compose-spec/compose-go/loader/full-example.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -26,6 +26,9 @@ services: | ||||
|         - foo:v1.0.0 | ||||
|         - docker.io/username/foo:my-other-tag | ||||
|         - ${COMPOSE_PROJECT_NAME}:1.0.0 | ||||
|       platforms: | ||||
|         - linux/amd64 | ||||
|         - linux/arm64 | ||||
|  | ||||
|  | ||||
|     cap_add: | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/github.com/compose-spec/compose-go/schema/compose-spec.json
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/compose-spec/compose-go/schema/compose-spec.json
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -103,7 +103,8 @@ | ||||
|                 "extra_hosts": {"$ref": "#/definitions/list_or_dict"}, | ||||
|                 "isolation": {"type": "string"}, | ||||
|                 "secrets": {"$ref": "#/definitions/service_config_or_secret"}, | ||||
|                 "tags": {"type": "array", "items": {"type": "string"}} | ||||
|                 "tags": {"type": "array", "items": {"type": "string"}}, | ||||
|                 "platforms": {"type": "array", "items": {"type": "string"}} | ||||
|               }, | ||||
|               "additionalProperties": false, | ||||
|               "patternProperties": {"^x-": {}} | ||||
|   | ||||
							
								
								
									
										229
									
								
								vendor/github.com/compose-spec/compose-go/types/types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										229
									
								
								vendor/github.com/compose-spec/compose-go/types/types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -88,90 +88,102 @@ type ServiceConfig struct { | ||||
| 	Name     string   `yaml:"-" json:"-"` | ||||
| 	Profiles []string `mapstructure:"profiles" yaml:"profiles,omitempty" json:"profiles,omitempty"` | ||||
|  | ||||
| 	Build             *BuildConfig                     `yaml:",omitempty" json:"build,omitempty"` | ||||
| 	BlkioConfig       *BlkioConfig                     `mapstructure:"blkio_config" yaml:",omitempty" json:"blkio_config,omitempty"` | ||||
| 	CapAdd            []string                         `mapstructure:"cap_add" yaml:"cap_add,omitempty" json:"cap_add,omitempty"` | ||||
| 	CapDrop           []string                         `mapstructure:"cap_drop" yaml:"cap_drop,omitempty" json:"cap_drop,omitempty"` | ||||
| 	CgroupParent      string                           `mapstructure:"cgroup_parent" yaml:"cgroup_parent,omitempty" json:"cgroup_parent,omitempty"` | ||||
| 	CPUCount          int64                            `mapstructure:"cpu_count" yaml:"cpu_count,omitempty" json:"cpu_count,omitempty"` | ||||
| 	CPUPercent        float32                          `mapstructure:"cpu_percent" yaml:"cpu_percent,omitempty" json:"cpu_percent,omitempty"` | ||||
| 	CPUPeriod         int64                            `mapstructure:"cpu_period" yaml:"cpu_period,omitempty" json:"cpu_period,omitempty"` | ||||
| 	CPUQuota          int64                            `mapstructure:"cpu_quota" yaml:"cpu_quota,omitempty" json:"cpu_quota,omitempty"` | ||||
| 	CPURTPeriod       int64                            `mapstructure:"cpu_rt_period" yaml:"cpu_rt_period,omitempty" json:"cpu_rt_period,omitempty"` | ||||
| 	CPURTRuntime      int64                            `mapstructure:"cpu_rt_runtime" yaml:"cpu_rt_runtime,omitempty" json:"cpu_rt_runtime,omitempty"` | ||||
| 	CPUS              float32                          `mapstructure:"cpus" yaml:"cpus,omitempty" json:"cpus,omitempty"` | ||||
| 	CPUSet            string                           `mapstructure:"cpuset" yaml:"cpuset,omitempty" json:"cpuset,omitempty"` | ||||
| 	CPUShares         int64                            `mapstructure:"cpu_shares" yaml:"cpu_shares,omitempty" json:"cpu_shares,omitempty"` | ||||
| 	Command           ShellCommand                     `yaml:",omitempty" json:"command,omitempty"` | ||||
| 	Configs           []ServiceConfigObjConfig         `yaml:",omitempty" json:"configs,omitempty"` | ||||
| 	ContainerName     string                           `mapstructure:"container_name" yaml:"container_name,omitempty" json:"container_name,omitempty"` | ||||
| 	CredentialSpec    *CredentialSpecConfig            `mapstructure:"credential_spec" yaml:"credential_spec,omitempty" json:"credential_spec,omitempty"` | ||||
| 	DependsOn         DependsOnConfig                  `mapstructure:"depends_on" yaml:"depends_on,omitempty" json:"depends_on,omitempty"` | ||||
| 	Deploy            *DeployConfig                    `yaml:",omitempty" json:"deploy,omitempty"` | ||||
| 	DeviceCgroupRules []string                         `mapstructure:"device_cgroup_rules" yaml:"device_cgroup_rules,omitempty" json:"device_cgroup_rules,omitempty"` | ||||
| 	Devices           []string                         `yaml:",omitempty" json:"devices,omitempty"` | ||||
| 	DNS               StringList                       `yaml:",omitempty" json:"dns,omitempty"` | ||||
| 	DNSOpts           []string                         `mapstructure:"dns_opt" yaml:"dns_opt,omitempty" json:"dns_opt,omitempty"` | ||||
| 	DNSSearch         StringList                       `mapstructure:"dns_search" yaml:"dns_search,omitempty" json:"dns_search,omitempty"` | ||||
| 	Dockerfile        string                           `yaml:"dockerfile,omitempty" json:"dockerfile,omitempty"` | ||||
| 	DomainName        string                           `mapstructure:"domainname" yaml:"domainname,omitempty" json:"domainname,omitempty"` | ||||
| 	Entrypoint        ShellCommand                     `yaml:",omitempty" json:"entrypoint,omitempty"` | ||||
| 	Environment       MappingWithEquals                `yaml:",omitempty" json:"environment,omitempty"` | ||||
| 	EnvFile           StringList                       `mapstructure:"env_file" yaml:"env_file,omitempty" json:"env_file,omitempty"` | ||||
| 	Expose            StringOrNumberList               `yaml:",omitempty" json:"expose,omitempty"` | ||||
| 	Extends           ExtendsConfig                    `yaml:"extends,omitempty" json:"extends,omitempty"` | ||||
| 	ExternalLinks     []string                         `mapstructure:"external_links" yaml:"external_links,omitempty" json:"external_links,omitempty"` | ||||
| 	ExtraHosts        HostsList                        `mapstructure:"extra_hosts" yaml:"extra_hosts,omitempty" json:"extra_hosts,omitempty"` | ||||
| 	GroupAdd          []string                         `mapstructure:"group_add" yaml:"group_add,omitempty" json:"group_add,omitempty"` | ||||
| 	Hostname          string                           `yaml:",omitempty" json:"hostname,omitempty"` | ||||
| 	HealthCheck       *HealthCheckConfig               `yaml:",omitempty" json:"healthcheck,omitempty"` | ||||
| 	Image             string                           `yaml:",omitempty" json:"image,omitempty"` | ||||
| 	Init              *bool                            `yaml:",omitempty" json:"init,omitempty"` | ||||
| 	Ipc               string                           `yaml:",omitempty" json:"ipc,omitempty"` | ||||
| 	Isolation         string                           `mapstructure:"isolation" yaml:"isolation,omitempty" json:"isolation,omitempty"` | ||||
| 	Labels            Labels                           `yaml:",omitempty" json:"labels,omitempty"` | ||||
| 	CustomLabels      Labels                           `yaml:"-" json:"-"` | ||||
| 	Links             []string                         `yaml:",omitempty" json:"links,omitempty"` | ||||
| 	Logging           *LoggingConfig                   `yaml:",omitempty" json:"logging,omitempty"` | ||||
| 	LogDriver         string                           `mapstructure:"log_driver" yaml:"log_driver,omitempty" json:"log_driver,omitempty"` | ||||
| 	LogOpt            map[string]string                `mapstructure:"log_opt" yaml:"log_opt,omitempty" json:"log_opt,omitempty"` | ||||
| 	MemLimit          UnitBytes                        `mapstructure:"mem_limit" yaml:"mem_limit,omitempty" json:"mem_limit,omitempty"` | ||||
| 	MemReservation    UnitBytes                        `mapstructure:"mem_reservation" yaml:"mem_reservation,omitempty" json:"mem_reservation,omitempty"` | ||||
| 	MemSwapLimit      UnitBytes                        `mapstructure:"memswap_limit" yaml:"memswap_limit,omitempty" json:"memswap_limit,omitempty"` | ||||
| 	MemSwappiness     UnitBytes                        `mapstructure:"mem_swappiness" yaml:"mem_swappiness,omitempty" json:"mem_swappiness,omitempty"` | ||||
| 	MacAddress        string                           `mapstructure:"mac_address" yaml:"mac_address,omitempty" json:"mac_address,omitempty"` | ||||
| 	Net               string                           `yaml:"net,omitempty" json:"net,omitempty"` | ||||
| 	NetworkMode       string                           `mapstructure:"network_mode" yaml:"network_mode,omitempty" json:"network_mode,omitempty"` | ||||
| 	Networks          map[string]*ServiceNetworkConfig `yaml:",omitempty" json:"networks,omitempty"` | ||||
| 	OomKillDisable    bool                             `mapstructure:"oom_kill_disable" yaml:"oom_kill_disable,omitempty" json:"oom_kill_disable,omitempty"` | ||||
| 	OomScoreAdj       int64                            `mapstructure:"oom_score_adj" yaml:"oom_score_adj,omitempty" json:"oom_score_adj,omitempty"` | ||||
| 	Pid               string                           `yaml:",omitempty" json:"pid,omitempty"` | ||||
| 	PidsLimit         int64                            `mapstructure:"pids_limit" yaml:"pids_limit,omitempty" json:"pids_limit,omitempty"` | ||||
| 	Platform          string                           `yaml:",omitempty" json:"platform,omitempty"` | ||||
| 	Ports             []ServicePortConfig              `yaml:",omitempty" json:"ports,omitempty"` | ||||
| 	Privileged        bool                             `yaml:",omitempty" json:"privileged,omitempty"` | ||||
| 	PullPolicy        string                           `mapstructure:"pull_policy" yaml:"pull_policy,omitempty" json:"pull_policy,omitempty"` | ||||
| 	ReadOnly          bool                             `mapstructure:"read_only" yaml:"read_only,omitempty" json:"read_only,omitempty"` | ||||
| 	Restart           string                           `yaml:",omitempty" json:"restart,omitempty"` | ||||
| 	Runtime           string                           `yaml:",omitempty" json:"runtime,omitempty"` | ||||
| 	Scale             int                              `yaml:"-" json:"-"` | ||||
| 	Secrets           []ServiceSecretConfig            `yaml:",omitempty" json:"secrets,omitempty"` | ||||
| 	SecurityOpt       []string                         `mapstructure:"security_opt" yaml:"security_opt,omitempty" json:"security_opt,omitempty"` | ||||
| 	ShmSize           UnitBytes                        `mapstructure:"shm_size" yaml:"shm_size,omitempty" json:"shm_size,omitempty"` | ||||
| 	StdinOpen         bool                             `mapstructure:"stdin_open" yaml:"stdin_open,omitempty" json:"stdin_open,omitempty"` | ||||
| 	StopGracePeriod   *Duration                        `mapstructure:"stop_grace_period" yaml:"stop_grace_period,omitempty" json:"stop_grace_period,omitempty"` | ||||
| 	StopSignal        string                           `mapstructure:"stop_signal" yaml:"stop_signal,omitempty" json:"stop_signal,omitempty"` | ||||
| 	Sysctls           Mapping                          `yaml:",omitempty" json:"sysctls,omitempty"` | ||||
| 	Tmpfs             StringList                       `yaml:",omitempty" json:"tmpfs,omitempty"` | ||||
| 	Tty               bool                             `mapstructure:"tty" yaml:"tty,omitempty" json:"tty,omitempty"` | ||||
| 	Ulimits           map[string]*UlimitsConfig        `yaml:",omitempty" json:"ulimits,omitempty"` | ||||
| 	User              string                           `yaml:",omitempty" json:"user,omitempty"` | ||||
| 	UserNSMode        string                           `mapstructure:"userns_mode" yaml:"userns_mode,omitempty" json:"userns_mode,omitempty"` | ||||
| 	Uts               string                           `yaml:"uts,omitempty" json:"uts,omitempty"` | ||||
| 	VolumeDriver      string                           `mapstructure:"volume_driver" yaml:"volume_driver,omitempty" json:"volume_driver,omitempty"` | ||||
| 	Volumes           []ServiceVolumeConfig            `yaml:",omitempty" json:"volumes,omitempty"` | ||||
| 	VolumesFrom       []string                         `mapstructure:"volumes_from" yaml:"volumes_from,omitempty" json:"volumes_from,omitempty"` | ||||
| 	WorkingDir        string                           `mapstructure:"working_dir" yaml:"working_dir,omitempty" json:"working_dir,omitempty"` | ||||
| 	Build        *BuildConfig `yaml:",omitempty" json:"build,omitempty"` | ||||
| 	BlkioConfig  *BlkioConfig `mapstructure:"blkio_config" yaml:",omitempty" json:"blkio_config,omitempty"` | ||||
| 	CapAdd       []string     `mapstructure:"cap_add" yaml:"cap_add,omitempty" json:"cap_add,omitempty"` | ||||
| 	CapDrop      []string     `mapstructure:"cap_drop" yaml:"cap_drop,omitempty" json:"cap_drop,omitempty"` | ||||
| 	CgroupParent string       `mapstructure:"cgroup_parent" yaml:"cgroup_parent,omitempty" json:"cgroup_parent,omitempty"` | ||||
| 	CPUCount     int64        `mapstructure:"cpu_count" yaml:"cpu_count,omitempty" json:"cpu_count,omitempty"` | ||||
| 	CPUPercent   float32      `mapstructure:"cpu_percent" yaml:"cpu_percent,omitempty" json:"cpu_percent,omitempty"` | ||||
| 	CPUPeriod    int64        `mapstructure:"cpu_period" yaml:"cpu_period,omitempty" json:"cpu_period,omitempty"` | ||||
| 	CPUQuota     int64        `mapstructure:"cpu_quota" yaml:"cpu_quota,omitempty" json:"cpu_quota,omitempty"` | ||||
| 	CPURTPeriod  int64        `mapstructure:"cpu_rt_period" yaml:"cpu_rt_period,omitempty" json:"cpu_rt_period,omitempty"` | ||||
| 	CPURTRuntime int64        `mapstructure:"cpu_rt_runtime" yaml:"cpu_rt_runtime,omitempty" json:"cpu_rt_runtime,omitempty"` | ||||
| 	CPUS         float32      `mapstructure:"cpus" yaml:"cpus,omitempty" json:"cpus,omitempty"` | ||||
| 	CPUSet       string       `mapstructure:"cpuset" yaml:"cpuset,omitempty" json:"cpuset,omitempty"` | ||||
| 	CPUShares    int64        `mapstructure:"cpu_shares" yaml:"cpu_shares,omitempty" json:"cpu_shares,omitempty"` | ||||
|  | ||||
| 	// Command for the service containers. | ||||
| 	// If set, overrides COMMAND from the image. | ||||
| 	// | ||||
| 	// Set to `[]` or `''` to clear the command from the image. | ||||
| 	Command ShellCommand `yaml:",omitempty" json:"command"` // NOTE: we can NOT omitempty for JSON! see ShellCommand type for details. | ||||
|  | ||||
| 	Configs           []ServiceConfigObjConfig `yaml:",omitempty" json:"configs,omitempty"` | ||||
| 	ContainerName     string                   `mapstructure:"container_name" yaml:"container_name,omitempty" json:"container_name,omitempty"` | ||||
| 	CredentialSpec    *CredentialSpecConfig    `mapstructure:"credential_spec" yaml:"credential_spec,omitempty" json:"credential_spec,omitempty"` | ||||
| 	DependsOn         DependsOnConfig          `mapstructure:"depends_on" yaml:"depends_on,omitempty" json:"depends_on,omitempty"` | ||||
| 	Deploy            *DeployConfig            `yaml:",omitempty" json:"deploy,omitempty"` | ||||
| 	DeviceCgroupRules []string                 `mapstructure:"device_cgroup_rules" yaml:"device_cgroup_rules,omitempty" json:"device_cgroup_rules,omitempty"` | ||||
| 	Devices           []string                 `yaml:",omitempty" json:"devices,omitempty"` | ||||
| 	DNS               StringList               `yaml:",omitempty" json:"dns,omitempty"` | ||||
| 	DNSOpts           []string                 `mapstructure:"dns_opt" yaml:"dns_opt,omitempty" json:"dns_opt,omitempty"` | ||||
| 	DNSSearch         StringList               `mapstructure:"dns_search" yaml:"dns_search,omitempty" json:"dns_search,omitempty"` | ||||
| 	Dockerfile        string                   `yaml:"dockerfile,omitempty" json:"dockerfile,omitempty"` | ||||
| 	DomainName        string                   `mapstructure:"domainname" yaml:"domainname,omitempty" json:"domainname,omitempty"` | ||||
|  | ||||
| 	// Entrypoint for the service containers. | ||||
| 	// If set, overrides ENTRYPOINT from the image. | ||||
| 	// | ||||
| 	// Set to `[]` or `''` to clear the entrypoint from the image. | ||||
| 	Entrypoint ShellCommand `yaml:"entrypoint,omitempty" json:"entrypoint"` // NOTE: we can NOT omitempty for JSON! see ShellCommand type for details. | ||||
|  | ||||
| 	Environment     MappingWithEquals                `yaml:",omitempty" json:"environment,omitempty"` | ||||
| 	EnvFile         StringList                       `mapstructure:"env_file" yaml:"env_file,omitempty" json:"env_file,omitempty"` | ||||
| 	Expose          StringOrNumberList               `yaml:",omitempty" json:"expose,omitempty"` | ||||
| 	Extends         ExtendsConfig                    `yaml:"extends,omitempty" json:"extends,omitempty"` | ||||
| 	ExternalLinks   []string                         `mapstructure:"external_links" yaml:"external_links,omitempty" json:"external_links,omitempty"` | ||||
| 	ExtraHosts      HostsList                        `mapstructure:"extra_hosts" yaml:"extra_hosts,omitempty" json:"extra_hosts,omitempty"` | ||||
| 	GroupAdd        []string                         `mapstructure:"group_add" yaml:"group_add,omitempty" json:"group_add,omitempty"` | ||||
| 	Hostname        string                           `yaml:",omitempty" json:"hostname,omitempty"` | ||||
| 	HealthCheck     *HealthCheckConfig               `yaml:",omitempty" json:"healthcheck,omitempty"` | ||||
| 	Image           string                           `yaml:",omitempty" json:"image,omitempty"` | ||||
| 	Init            *bool                            `yaml:",omitempty" json:"init,omitempty"` | ||||
| 	Ipc             string                           `yaml:",omitempty" json:"ipc,omitempty"` | ||||
| 	Isolation       string                           `mapstructure:"isolation" yaml:"isolation,omitempty" json:"isolation,omitempty"` | ||||
| 	Labels          Labels                           `yaml:",omitempty" json:"labels,omitempty"` | ||||
| 	CustomLabels    Labels                           `yaml:"-" json:"-"` | ||||
| 	Links           []string                         `yaml:",omitempty" json:"links,omitempty"` | ||||
| 	Logging         *LoggingConfig                   `yaml:",omitempty" json:"logging,omitempty"` | ||||
| 	LogDriver       string                           `mapstructure:"log_driver" yaml:"log_driver,omitempty" json:"log_driver,omitempty"` | ||||
| 	LogOpt          map[string]string                `mapstructure:"log_opt" yaml:"log_opt,omitempty" json:"log_opt,omitempty"` | ||||
| 	MemLimit        UnitBytes                        `mapstructure:"mem_limit" yaml:"mem_limit,omitempty" json:"mem_limit,omitempty"` | ||||
| 	MemReservation  UnitBytes                        `mapstructure:"mem_reservation" yaml:"mem_reservation,omitempty" json:"mem_reservation,omitempty"` | ||||
| 	MemSwapLimit    UnitBytes                        `mapstructure:"memswap_limit" yaml:"memswap_limit,omitempty" json:"memswap_limit,omitempty"` | ||||
| 	MemSwappiness   UnitBytes                        `mapstructure:"mem_swappiness" yaml:"mem_swappiness,omitempty" json:"mem_swappiness,omitempty"` | ||||
| 	MacAddress      string                           `mapstructure:"mac_address" yaml:"mac_address,omitempty" json:"mac_address,omitempty"` | ||||
| 	Net             string                           `yaml:"net,omitempty" json:"net,omitempty"` | ||||
| 	NetworkMode     string                           `mapstructure:"network_mode" yaml:"network_mode,omitempty" json:"network_mode,omitempty"` | ||||
| 	Networks        map[string]*ServiceNetworkConfig `yaml:",omitempty" json:"networks,omitempty"` | ||||
| 	OomKillDisable  bool                             `mapstructure:"oom_kill_disable" yaml:"oom_kill_disable,omitempty" json:"oom_kill_disable,omitempty"` | ||||
| 	OomScoreAdj     int64                            `mapstructure:"oom_score_adj" yaml:"oom_score_adj,omitempty" json:"oom_score_adj,omitempty"` | ||||
| 	Pid             string                           `yaml:",omitempty" json:"pid,omitempty"` | ||||
| 	PidsLimit       int64                            `mapstructure:"pids_limit" yaml:"pids_limit,omitempty" json:"pids_limit,omitempty"` | ||||
| 	Platform        string                           `yaml:",omitempty" json:"platform,omitempty"` | ||||
| 	Ports           []ServicePortConfig              `yaml:",omitempty" json:"ports,omitempty"` | ||||
| 	Privileged      bool                             `yaml:",omitempty" json:"privileged,omitempty"` | ||||
| 	PullPolicy      string                           `mapstructure:"pull_policy" yaml:"pull_policy,omitempty" json:"pull_policy,omitempty"` | ||||
| 	ReadOnly        bool                             `mapstructure:"read_only" yaml:"read_only,omitempty" json:"read_only,omitempty"` | ||||
| 	Restart         string                           `yaml:",omitempty" json:"restart,omitempty"` | ||||
| 	Runtime         string                           `yaml:",omitempty" json:"runtime,omitempty"` | ||||
| 	Scale           int                              `yaml:"-" json:"-"` | ||||
| 	Secrets         []ServiceSecretConfig            `yaml:",omitempty" json:"secrets,omitempty"` | ||||
| 	SecurityOpt     []string                         `mapstructure:"security_opt" yaml:"security_opt,omitempty" json:"security_opt,omitempty"` | ||||
| 	ShmSize         UnitBytes                        `mapstructure:"shm_size" yaml:"shm_size,omitempty" json:"shm_size,omitempty"` | ||||
| 	StdinOpen       bool                             `mapstructure:"stdin_open" yaml:"stdin_open,omitempty" json:"stdin_open,omitempty"` | ||||
| 	StopGracePeriod *Duration                        `mapstructure:"stop_grace_period" yaml:"stop_grace_period,omitempty" json:"stop_grace_period,omitempty"` | ||||
| 	StopSignal      string                           `mapstructure:"stop_signal" yaml:"stop_signal,omitempty" json:"stop_signal,omitempty"` | ||||
| 	Sysctls         Mapping                          `yaml:",omitempty" json:"sysctls,omitempty"` | ||||
| 	Tmpfs           StringList                       `yaml:",omitempty" json:"tmpfs,omitempty"` | ||||
| 	Tty             bool                             `mapstructure:"tty" yaml:"tty,omitempty" json:"tty,omitempty"` | ||||
| 	Ulimits         map[string]*UlimitsConfig        `yaml:",omitempty" json:"ulimits,omitempty"` | ||||
| 	User            string                           `yaml:",omitempty" json:"user,omitempty"` | ||||
| 	UserNSMode      string                           `mapstructure:"userns_mode" yaml:"userns_mode,omitempty" json:"userns_mode,omitempty"` | ||||
| 	Uts             string                           `yaml:"uts,omitempty" json:"uts,omitempty"` | ||||
| 	VolumeDriver    string                           `mapstructure:"volume_driver" yaml:"volume_driver,omitempty" json:"volume_driver,omitempty"` | ||||
| 	Volumes         []ServiceVolumeConfig            `yaml:",omitempty" json:"volumes,omitempty"` | ||||
| 	VolumesFrom     []string                         `mapstructure:"volumes_from" yaml:"volumes_from,omitempty" json:"volumes_from,omitempty"` | ||||
| 	WorkingDir      string                           `mapstructure:"working_dir" yaml:"working_dir,omitempty" json:"working_dir,omitempty"` | ||||
|  | ||||
| 	Extensions map[string]interface{} `yaml:",inline" json:"-"` | ||||
| } | ||||
| @@ -306,6 +318,7 @@ type BuildConfig struct { | ||||
| 	Target     string                `yaml:",omitempty" json:"target,omitempty"` | ||||
| 	Secrets    []ServiceSecretConfig `yaml:",omitempty" json:"secrets,omitempty"` | ||||
| 	Tags       StringList            `mapstructure:"tags" yaml:"tags,omitempty" json:"tags,omitempty"` | ||||
| 	Platforms  StringList            `mapstructure:"platforms" yaml:"platforms,omitempty" json:"platforms,omitempty"` | ||||
|  | ||||
| 	Extensions map[string]interface{} `yaml:",inline" json:"-"` | ||||
| } | ||||
| @@ -338,9 +351,55 @@ type ThrottleDevice struct { | ||||
| 	Extensions map[string]interface{} `yaml:",inline" json:"-"` | ||||
| } | ||||
|  | ||||
| // ShellCommand is a string or list of string args | ||||
| // ShellCommand is a string or list of string args. | ||||
| // | ||||
| // When marshaled to YAML, nil command fields will be omitted if `omitempty` | ||||
| // is specified as a struct tag. Explicitly empty commands (i.e. `[]` or `''`) | ||||
| // will serialize to an empty array (`[]`). | ||||
| // | ||||
| // When marshaled to JSON, the `omitempty` struct must NOT be specified. | ||||
| // If the command field is nil, it will be serialized as `null`. | ||||
| // Explicitly empty commands (i.e. `[]` or `''`) will serialize to an empty | ||||
| // array (`[]`). | ||||
| // | ||||
| // The distinction between nil and explicitly empty is important to distinguish | ||||
| // between an unset value and a provided, but empty, value, which should be | ||||
| // preserved so that it can override any base value (e.g. container entrypoint). | ||||
| // | ||||
| // The different semantics between YAML and JSON are due to limitations with | ||||
| // JSON marshaling + `omitempty` in the Go stdlib, while gopkg.in/yaml.v2 gives | ||||
| // us more flexibility via the yaml.IsZeroer interface. | ||||
| // | ||||
| // In the future, it might make sense to make fields of this type be | ||||
| // `*ShellCommand` to avoid this situation, but that would constitute a | ||||
| // breaking change. | ||||
| type ShellCommand []string | ||||
|  | ||||
| // IsZero returns true if the slice is nil. | ||||
| // | ||||
| // Empty (but non-nil) slices are NOT considered zero values. | ||||
| func (s ShellCommand) IsZero() bool { | ||||
| 	// we do NOT want len(s) == 0, ONLY explicitly nil | ||||
| 	return s == nil | ||||
| } | ||||
|  | ||||
| // MarshalYAML returns nil (which will be serialized as `null`) for nil slices | ||||
| // and delegates to the standard marshaller behavior otherwise. | ||||
| // | ||||
| // NOTE: Typically the nil case here is not hit because IsZero has already | ||||
| // short-circuited marshalling, but this ensures that the type serializes | ||||
| // accurately if the `omitempty` struct tag is omitted/forgotten. | ||||
| // | ||||
| // A similar MarshalJSON() implementation is not needed because the Go stdlib | ||||
| // already serializes nil slices to `null`, whereas gopkg.in/yaml.v2 by default | ||||
| // serializes nil slices to `[]`. | ||||
| func (s ShellCommand) MarshalYAML() (interface{}, error) { | ||||
| 	if s == nil { | ||||
| 		return nil, nil | ||||
| 	} | ||||
| 	return []string(s), nil | ||||
| } | ||||
|  | ||||
| // StringList is a type for fields that can be a string or list of strings | ||||
| type StringList []string | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Nick Sieger
					Nick Sieger