MCPcopy Index your code
hub / github.com/docker/cli / Service

Function Service

cli/compose/convert/service.go:62–178  ·  view source on GitHub ↗

Service converts a ServiceConfig into a swarm ServiceSpec

(
	namespace Namespace,
	service composetypes.ServiceConfig,
	networkConfigs map[string]composetypes.NetworkConfig,
	volumes map[string]composetypes.VolumeConfig,
	secrets []*swarm.SecretReference,
	configs []*swarm.ConfigReference,
)

Source from the content-addressed store, hash-verified

60
61// Service converts a ServiceConfig into a swarm ServiceSpec
62func Service(
63 namespace Namespace,
64 service composetypes.ServiceConfig,
65 networkConfigs map[string]composetypes.NetworkConfig,
66 volumes map[string]composetypes.VolumeConfig,
67 secrets []*swarm.SecretReference,
68 configs []*swarm.ConfigReference,
69) (swarm.ServiceSpec, error) {
70 name := namespace.Scope(service.Name)
71 endpoint := convertEndpointSpec(service.Deploy.EndpointMode, service.Ports)
72
73 mode, err := convertDeployMode(service.Deploy.Mode, service.Deploy.Replicas)
74 if err != nil {
75 return swarm.ServiceSpec{}, err
76 }
77
78 mounts, err := Volumes(service.Volumes, volumes, namespace)
79 if err != nil {
80 return swarm.ServiceSpec{}, err
81 }
82
83 resources, err := convertResources(service.Deploy.Resources)
84 if err != nil {
85 return swarm.ServiceSpec{}, err
86 }
87
88 restartPolicy, err := convertRestartPolicy(service.Restart, service.Deploy.RestartPolicy)
89 if err != nil {
90 return swarm.ServiceSpec{}, err
91 }
92
93 healthcheck, err := convertHealthcheck(service.HealthCheck)
94 if err != nil {
95 return swarm.ServiceSpec{}, err
96 }
97
98 networks, err := convertServiceNetworks(service.Networks, networkConfigs, namespace, service.Name)
99 if err != nil {
100 return swarm.ServiceSpec{}, err
101 }
102
103 dnsConfig := convertDNSConfig(service.DNS, service.DNSSearch) // TODO(thaJeztah): change service.DNS to a []netip.Addr
104
105 var privileges swarm.Privileges
106 privileges.CredentialSpec, err = convertCredentialSpec(
107 namespace, service.CredentialSpec, configs,
108 )
109 if err != nil {
110 return swarm.ServiceSpec{}, err
111 }
112
113 var logDriver *swarm.Driver
114 if service.Logging != nil {
115 logDriver = &swarm.Driver{
116 Name: service.Logging.Driver,
117 Options: service.Logging.Options,
118 }
119 }

Callers 3

ServicesFunction · 0.70

Calls 15

convertEndpointSpecFunction · 0.85
convertDeployModeFunction · 0.85
VolumesFunction · 0.85
convertResourcesFunction · 0.85
convertRestartPolicyFunction · 0.85
convertHealthcheckFunction · 0.85
convertServiceNetworksFunction · 0.85
convertDNSConfigFunction · 0.85
convertCredentialSpecFunction · 0.85
addStackLabelFunction · 0.85
convertExtraHostsFunction · 0.85
convertEnvironmentFunction · 0.85

Tested by 2

Used in the wild real call sites across dependent graphs

searching dependent graphs…