@@ -35,18 +35,17 @@ import (
35
35
dockercli "github.com/docker/cli/cli"
36
36
"github.com/docker/cli/cli-plugins/manager"
37
37
"github.com/docker/cli/cli/command"
38
+ "github.com/docker/compose/v2/cmd/formatter"
39
+ "github.com/docker/compose/v2/pkg/api"
40
+ "github.com/docker/compose/v2/pkg/compose"
41
+ ui "github.com/docker/compose/v2/pkg/progress"
38
42
"github.com/docker/compose/v2/pkg/remote"
43
+ "github.com/docker/compose/v2/pkg/utils"
39
44
buildkit "github.com/moby/buildkit/util/progress/progressui"
40
45
"github.com/morikuni/aec"
41
46
"github.com/sirupsen/logrus"
42
47
"github.com/spf13/cobra"
43
48
"github.com/spf13/pflag"
44
-
45
- "github.com/docker/compose/v2/cmd/formatter"
46
- "github.com/docker/compose/v2/pkg/api"
47
- "github.com/docker/compose/v2/pkg/compose"
48
- ui "github.com/docker/compose/v2/pkg/progress"
49
- "github.com/docker/compose/v2/pkg/utils"
50
49
)
51
50
52
51
const (
@@ -140,10 +139,9 @@ func (o *ProjectOptions) WithServices(dockerCli command.Cli, fn ProjectServicesF
140
139
options := []cli.ProjectOptionsFn {
141
140
cli .WithResolvedPaths (true ),
142
141
cli .WithDiscardEnvFile ,
143
- cli .WithContext (ctx ),
144
142
}
145
143
146
- project , err := o .ToProject (dockerCli , args , options ... )
144
+ project , err := o .ToProject (ctx , dockerCli , args , options ... )
147
145
if err != nil {
148
146
return err
149
147
}
@@ -164,11 +162,11 @@ func (o *ProjectOptions) addProjectFlags(f *pflag.FlagSet) {
164
162
_ = f .MarkHidden ("workdir" )
165
163
}
166
164
167
- func (o * ProjectOptions ) projectOrName (dockerCli command.Cli , services ... string ) (* types.Project , string , error ) {
165
+ func (o * ProjectOptions ) projectOrName (ctx context. Context , dockerCli command.Cli , services ... string ) (* types.Project , string , error ) {
168
166
name := o .ProjectName
169
167
var project * types.Project
170
168
if len (o .ConfigPaths ) > 0 || o .ProjectName == "" {
171
- p , err := o .ToProject (dockerCli , services , cli .WithDiscardEnvFile )
169
+ p , err := o .ToProject (ctx , dockerCli , services , cli .WithDiscardEnvFile )
172
170
if err != nil {
173
171
envProjectName := os .Getenv (ComposeProjectName )
174
172
if envProjectName != "" {
@@ -182,7 +180,7 @@ func (o *ProjectOptions) projectOrName(dockerCli command.Cli, services ...string
182
180
return project , name , nil
183
181
}
184
182
185
- func (o * ProjectOptions ) toProjectName (dockerCli command.Cli ) (string , error ) {
183
+ func (o * ProjectOptions ) toProjectName (ctx context. Context , dockerCli command.Cli ) (string , error ) {
186
184
if o .ProjectName != "" {
187
185
return o .ProjectName , nil
188
186
}
@@ -192,18 +190,20 @@ func (o *ProjectOptions) toProjectName(dockerCli command.Cli) (string, error) {
192
190
return envProjectName , nil
193
191
}
194
192
195
- project , err := o .ToProject (dockerCli , nil )
193
+ project , err := o .ToProject (ctx , dockerCli , nil )
196
194
if err != nil {
197
195
return "" , err
198
196
}
199
197
return project .Name , nil
200
198
}
201
199
202
- func (o * ProjectOptions ) ToProject (dockerCli command.Cli , services []string , po ... cli.ProjectOptionsFn ) (* types.Project , error ) {
200
+ func (o * ProjectOptions ) ToProject (ctx context. Context , dockerCli command.Cli , services []string , po ... cli.ProjectOptionsFn ) (* types.Project , error ) {
203
201
if ! o .Offline {
204
- po = o . configureRemoteLoaders (dockerCli , po )
202
+ po = append ( po , o . remoteLoaders (dockerCli ) ... )
205
203
}
206
204
205
+ po = append (po , cli .WithContext (ctx ))
206
+
207
207
options , err := o .toProjectOptions (po ... )
208
208
if err != nil {
209
209
return nil , compose .WrapComposeError (err )
@@ -248,12 +248,10 @@ func (o *ProjectOptions) ToProject(dockerCli command.Cli, services []string, po
248
248
return project , err
249
249
}
250
250
251
- func (o * ProjectOptions ) configureRemoteLoaders (dockerCli command.Cli , po []cli. ProjectOptionsFn ) []cli.ProjectOptionsFn {
251
+ func (o * ProjectOptions ) remoteLoaders (dockerCli command.Cli ) []cli.ProjectOptionsFn {
252
252
git := remote .NewGitRemoteLoader (o .Offline )
253
253
oci := remote .NewOCIRemoteLoader (dockerCli , o .Offline )
254
-
255
- po = append (po , cli .WithResourceLoader (git ), cli .WithResourceLoader (oci ))
256
- return po
254
+ return []cli.ProjectOptionsFn {cli .WithResourceLoader (git ), cli .WithResourceLoader (oci )}
257
255
}
258
256
259
257
func (o * ProjectOptions ) toProjectOptions (po ... cli.ProjectOptionsFn ) (* cli.ProjectOptions , error ) {
0 commit comments