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

Method extractComposeConfiguration

pkg/compose/generate.go:112–142  ·  pkg/compose/generate.go::composeService.extractComposeConfiguration
(service *types.ServiceConfig, inspect container.InspectResponse, volumes types.Volumes, secrets types.Secrets, networks types.Networks)

Source from the content-addressed store, hash-verified

110}
111
112func (s *composeService) extractComposeConfiguration(service *types.ServiceConfig, inspect container.InspectResponse, volumes types.Volumes, secrets types.Secrets, networks types.Networks) {
113 service.Environment = types.NewMappingWithEquals(inspect.Config.Env)
114 if inspect.Config.Healthcheck != nil {
115 healthConfig := inspect.Config.Healthcheck
116 service.HealthCheck = s.toComposeHealthCheck(healthConfig)
117 }
118 if len(inspect.Mounts) > 0 {
119 detectedVolumes, volumeConfigs, detectedSecrets, secretsConfigs := s.toComposeVolumes(inspect.Mounts)
120 service.Volumes = append(service.Volumes, volumeConfigs...)
121 service.Secrets = append(service.Secrets, secretsConfigs...)
122 maps.Copy(volumes, detectedVolumes)
123 maps.Copy(secrets, detectedSecrets)
124 }
125 if len(inspect.NetworkSettings.Networks) > 0 {
126 detectedNetworks, networkConfigs := s.toComposeNetwork(inspect.NetworkSettings.Networks)
127 service.Networks = networkConfigs
128 maps.Copy(networks, detectedNetworks)
129 }
130 if len(inspect.HostConfig.PortBindings) > 0 {
131 for key, portBindings := range inspect.HostConfig.PortBindings {
132 for _, portBinding := range portBindings {
133 service.Ports = append(service.Ports, types.ServicePortConfig{
134 Target: uint32(key.Num()),
135 Published: portBinding.HostPort,
136 Protocol: string(key.Proto()),
137 HostIP: portBinding.HostIP.String(),
138 })
139 }
140 }
141 }
142}
143
144func (s *composeService) toComposeHealthCheck(healthConfig *container.HealthConfig) *types.HealthCheckConfig {
145 var healthCheck types.HealthCheckConfig

Callers 1

Calls 5

toComposeHealthCheckMethod · 0.95
toComposeVolumesMethod · 0.95
toComposeNetworkMethod · 0.95
CopyMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected