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

Function LoadAdditionalResources

pkg/bridge/convert.go:165–207  ·  view source on GitHub ↗

LoadAdditionalResources loads additional resources from the project, such as image references, secrets, configs and exposed ports

(ctx context.Context, dockerCLI command.Cli, project *types.Project)

Source from the content-addressed store, hash-verified

163
164// LoadAdditionalResources loads additional resources from the project, such as image references, secrets, configs and exposed ports
165func LoadAdditionalResources(ctx context.Context, dockerCLI command.Cli, project *types.Project) (*types.Project, error) {
166 for name, service := range project.Services {
167 imageName := api.GetImageNameOrDefault(service, project.Name)
168
169 inspect, err := inspectWithPull(ctx, dockerCLI, imageName)
170 if err != nil {
171 return nil, err
172 }
173 service.Image = imageName
174 exposed := utils.Set[string]{}
175 exposed.AddAll(service.Expose...)
176 for port := range inspect.Config.ExposedPorts {
177 p, err := network.ParsePort(port)
178 if err != nil {
179 return nil, err
180 }
181 exposed.Add(strconv.Itoa(int(p.Num())))
182 }
183 for _, port := range service.Ports {
184 exposed.Add(strconv.Itoa(int(port.Target)))
185 }
186 service.Expose = exposed.Elements()
187 project.Services[name] = service
188 }
189
190 for name, secret := range project.Secrets {
191 f, err := loadFileObject(types.FileObjectConfig(secret))
192 if err != nil {
193 return nil, err
194 }
195 project.Secrets[name] = types.SecretConfig(f)
196 }
197
198 for name, config := range project.Configs {
199 f, err := loadFileObject(types.FileObjectConfig(config))
200 if err != nil {
201 return nil, err
202 }
203 project.Configs[name] = types.ConfigObjConfig(f)
204 }
205
206 return project, nil
207}
208
209func loadFileObject(conf types.FileObjectConfig) (types.FileObjectConfig, error) {
210 if !conf.External {

Callers 1

ConvertFunction · 0.85

Calls 6

GetImageNameOrDefaultFunction · 0.92
inspectWithPullFunction · 0.85
loadFileObjectFunction · 0.85
AddAllMethod · 0.80
ElementsMethod · 0.80
AddMethod · 0.45

Tested by

no test coverage detected