MCPcopy
hub / github.com/docker/compose / getCreateConfigs

Method getCreateConfigs

pkg/compose/create.go:172–344  ·  pkg/compose/create.go::composeService.getCreateConfigs

nolint:gocyclo

(ctx context.Context,
	p *types.Project,
	service types.ServiceConfig,
	number int,
	inherit *container.Summary,
	opts createOptions,
)

Source from the content-addressed store, hash-verified

170
171//nolint:gocyclo
172func (s *composeService) getCreateConfigs(ctx context.Context,
173 p *types.Project,
174 service types.ServiceConfig,
175 number int,
176 inherit *container.Summary,
177 opts createOptions,
178) (createConfigs, error) {
179 labels, err := s.prepareLabels(opts.Labels, service, number)
180 if err != nil {
181 return createConfigs{}, err
182 }
183
184 var runCmd, entrypoint []string
185 if service.Command != nil {
186 runCmd = service.Command
187 }
188 if service.Entrypoint != nil {
189 entrypoint = service.Entrypoint
190 }
191
192 var (
193 tty = service.Tty
194 stdinOpen = service.StdinOpen
195 )
196
197 proxyConfig := types.MappingWithEquals(s.configFile().ParseProxyConfig(s.apiClient().DaemonHost(), nil))
198 env := proxyConfig.OverrideBy(service.Environment)
199
200 var mainNwName string
201 var mainNw *types.ServiceNetworkConfig
202 if len(service.Networks) > 0 {
203 mainNwName = service.NetworksByPriority()[0]
204 mainNw = service.Networks[mainNwName]
205 }
206
207 if err := s.prepareContainerMACAddress(service, mainNw, mainNwName); err != nil {
208 return createConfigs{}, err
209 }
210
211 healthcheck, err := s.ToMobyHealthCheck(ctx, service.HealthCheck)
212 if err != nil {
213 return createConfigs{}, err
214 }
215
216 exposedPorts, err := buildContainerPorts(service)
217 if err != nil {
218 return createConfigs{}, err
219 }
220
221 containerConfig := container.Config{
222 Hostname: service.Hostname,
223 Domainname: service.DomainName,
224 User: service.User,
225 ExposedPorts: exposedPorts,
226 Tty: tty,
227 OpenStdin: stdinOpen,
228 StdinOnce: opts.AttachStdin && stdinOpen,
229 AttachStdin: opts.AttachStdin,

Callers 1

createMobyContainerMethod · 0.95

Calls 15

prepareLabelsMethod · 0.95
configFileMethod · 0.95
apiClientMethod · 0.95
ToMobyHealthCheckMethod · 0.95
buildContainerVolumesMethod · 0.95
getLinksMethod · 0.95
RuntimeAPIVersionMethod · 0.95
GetImageNameOrDefaultFunction · 0.92
buildContainerPortsFunction · 0.85
ToMobyEnvFunction · 0.85
ToSecondsFunction · 0.85

Tested by

no test coverage detected