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

Method apply

cmd/compose/run.go:73–120  ·  view source on GitHub ↗
(project *types.Project)

Source from the content-addressed store, hash-verified

71}
72
73func (options runOptions) apply(project *types.Project) (*types.Project, error) {
74 if options.noDeps {
75 var err error
76 project, err = project.WithSelectedServices([]string{options.Service}, types.IgnoreDependencies)
77 if err != nil {
78 return nil, err
79 }
80 }
81
82 target, err := project.GetService(options.Service)
83 if err != nil {
84 return nil, err
85 }
86
87 target.Tty = !options.noTty
88 target.StdinOpen = options.interactive
89
90 // --service-ports and --publish are incompatible
91 if !options.servicePorts {
92 if len(target.Ports) > 0 {
93 logrus.Debug("Running service without ports exposed as --service-ports=false")
94 }
95 target.Ports = []types.ServicePortConfig{}
96 for _, p := range options.publish {
97 config, err := types.ParsePortConfig(p)
98 if err != nil {
99 return nil, err
100 }
101 target.Ports = append(target.Ports, config...)
102 }
103 }
104
105 for _, v := range options.volumes {
106 volume, err := format.ParseVolume(v)
107 if err != nil {
108 return nil, err
109 }
110 target.Volumes = append(target.Volumes, volume)
111 }
112
113 for name := range project.Services {
114 if name == options.Service {
115 project.Services[name] = target
116 break
117 }
118 }
119 return project, nil
120}
121
122func (options runOptions) getEnvironment(resolve func(string) (string, bool)) (types.Mapping, error) {
123 environment := types.NewMappingWithEquals(options.environment).Resolve(resolve).ToMapping()

Callers 1

runRunFunction · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected