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

Function writeComposeFile

pkg/remote/oci.go:237–258  ·  view source on GitHub ↗
(layer spec.Descriptor, i int, local string, content []byte)

Source from the content-addressed store, hash-verified

235}
236
237func writeComposeFile(layer spec.Descriptor, i int, local string, content []byte) error {
238 file := "compose.yaml"
239 if _, ok := layer.Annotations["com.docker.compose.extends"]; ok {
240 file = layer.Annotations["com.docker.compose.file"]
241 if err := validatePathInBase(local, file); err != nil {
242 return err
243 }
244 }
245 f, err := os.OpenFile(filepath.Join(local, file), os.O_RDWR|os.O_CREATE|os.O_APPEND, 0o600)
246 if err != nil {
247 return err
248 }
249 defer func() { _ = f.Close() }()
250 if _, ok := layer.Annotations["com.docker.compose.file"]; i > 0 && ok {
251 _, err := f.Write([]byte("\n---\n"))
252 if err != nil {
253 return err
254 }
255 }
256 _, err = f.Write(content)
257 return err
258}
259
260func writeEnvFile(layer spec.Descriptor, local string, content []byte) error {
261 envfilePath, ok := layer.Annotations["com.docker.compose.envfile"]

Calls 3

validatePathInBaseFunction · 0.85
CloseMethod · 0.65
WriteMethod · 0.45