Skip to content

Commit 0d48a93

Browse files
milasndeloof
authored andcommitted
chore(load): ensure context passed to load
This wasn't always getting passed, so adding it to the wrapper function where it'll pass the `WithContext()` loader method at the last moment. Signed-off-by: Milas Bowman <[email protected]>
1 parent aaa7ef6 commit 0d48a93

29 files changed

+47
-50
lines changed

cmd/compose/attach.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func attachCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service
6464
}
6565

6666
func runAttach(ctx context.Context, dockerCli command.Cli, backend api.Service, opts attachOpts) error {
67-
projectName, err := opts.toProjectName(dockerCli)
67+
projectName, err := opts.toProjectName(ctx, dockerCli)
6868
if err != nil {
6969
return err
7070
}

cmd/compose/build.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ func buildCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
136136
}
137137

138138
func runBuild(ctx context.Context, dockerCli command.Cli, backend api.Service, opts buildOptions, services []string) error {
139-
project, err := opts.ToProject(dockerCli, services, cli.WithResolvedPaths(true), cli.WithoutEnvironmentResolution)
139+
project, err := opts.ToProject(ctx, dockerCli, services, cli.WithResolvedPaths(true), cli.WithoutEnvironmentResolution)
140140
if err != nil {
141141
return err
142142
}

cmd/compose/completion.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func noCompletion() validArgsFn {
3737
func completeServiceNames(dockerCli command.Cli, p *ProjectOptions) validArgsFn {
3838
return func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
3939
p.Offline = true
40-
project, err := p.ToProject(dockerCli, nil)
40+
project, err := p.ToProject(cmd.Context(), dockerCli, nil)
4141
if err != nil {
4242
return nil, cobra.ShellCompDirectiveNoFileComp
4343
}
@@ -72,7 +72,7 @@ func completeProjectNames(backend api.Service) func(cmd *cobra.Command, args []s
7272
func completeProfileNames(dockerCli command.Cli, p *ProjectOptions) validArgsFn {
7373
return func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
7474
p.Offline = true
75-
project, err := p.ToProject(dockerCli, nil)
75+
project, err := p.ToProject(cmd.Context(), dockerCli, nil)
7676
if err != nil {
7777
return nil, cobra.ShellCompDirectiveNoFileComp
7878
}

cmd/compose/compose.go

+16-18
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,17 @@ import (
3535
dockercli "github.com/docker/cli/cli"
3636
"github.com/docker/cli/cli-plugins/manager"
3737
"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"
3842
"github.com/docker/compose/v2/pkg/remote"
43+
"github.com/docker/compose/v2/pkg/utils"
3944
buildkit "github.com/moby/buildkit/util/progress/progressui"
4045
"github.com/morikuni/aec"
4146
"github.com/sirupsen/logrus"
4247
"github.com/spf13/cobra"
4348
"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"
5049
)
5150

5251
const (
@@ -140,10 +139,9 @@ func (o *ProjectOptions) WithServices(dockerCli command.Cli, fn ProjectServicesF
140139
options := []cli.ProjectOptionsFn{
141140
cli.WithResolvedPaths(true),
142141
cli.WithDiscardEnvFile,
143-
cli.WithContext(ctx),
144142
}
145143

146-
project, err := o.ToProject(dockerCli, args, options...)
144+
project, err := o.ToProject(ctx, dockerCli, args, options...)
147145
if err != nil {
148146
return err
149147
}
@@ -164,11 +162,11 @@ func (o *ProjectOptions) addProjectFlags(f *pflag.FlagSet) {
164162
_ = f.MarkHidden("workdir")
165163
}
166164

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) {
168166
name := o.ProjectName
169167
var project *types.Project
170168
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)
172170
if err != nil {
173171
envProjectName := os.Getenv(ComposeProjectName)
174172
if envProjectName != "" {
@@ -182,7 +180,7 @@ func (o *ProjectOptions) projectOrName(dockerCli command.Cli, services ...string
182180
return project, name, nil
183181
}
184182

185-
func (o *ProjectOptions) toProjectName(dockerCli command.Cli) (string, error) {
183+
func (o *ProjectOptions) toProjectName(ctx context.Context, dockerCli command.Cli) (string, error) {
186184
if o.ProjectName != "" {
187185
return o.ProjectName, nil
188186
}
@@ -192,18 +190,20 @@ func (o *ProjectOptions) toProjectName(dockerCli command.Cli) (string, error) {
192190
return envProjectName, nil
193191
}
194192

195-
project, err := o.ToProject(dockerCli, nil)
193+
project, err := o.ToProject(ctx, dockerCli, nil)
196194
if err != nil {
197195
return "", err
198196
}
199197
return project.Name, nil
200198
}
201199

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) {
203201
if !o.Offline {
204-
po = o.configureRemoteLoaders(dockerCli, po)
202+
po = append(po, o.remoteLoaders(dockerCli)...)
205203
}
206204

205+
po = append(po, cli.WithContext(ctx))
206+
207207
options, err := o.toProjectOptions(po...)
208208
if err != nil {
209209
return nil, compose.WrapComposeError(err)
@@ -248,12 +248,10 @@ func (o *ProjectOptions) ToProject(dockerCli command.Cli, services []string, po
248248
return project, err
249249
}
250250

251-
func (o *ProjectOptions) configureRemoteLoaders(dockerCli command.Cli, po []cli.ProjectOptionsFn) []cli.ProjectOptionsFn {
251+
func (o *ProjectOptions) remoteLoaders(dockerCli command.Cli) []cli.ProjectOptionsFn {
252252
git := remote.NewGitRemoteLoader(o.Offline)
253253
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)}
257255
}
258256

259257
func (o *ProjectOptions) toProjectOptions(po ...cli.ProjectOptionsFn) (*cli.ProjectOptions, error) {

cmd/compose/config.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,8 @@ func (o *configOptions) ToProject(ctx context.Context, dockerCli command.Cli, se
5757
cli.WithNormalization(!o.noNormalize),
5858
cli.WithConsistency(!o.noConsistency),
5959
cli.WithDefaultProfiles(o.Profiles...),
60-
cli.WithDiscardEnvFile,
61-
cli.WithContext(ctx))
62-
return o.ProjectOptions.ToProject(dockerCli, services, po...)
60+
cli.WithDiscardEnvFile)
61+
return o.ProjectOptions.ToProject(ctx, dockerCli, services, po...)
6362
}
6463

6564
func configCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service) *cobra.Command {

cmd/compose/cp.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func copyCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
7676
}
7777

7878
func runCopy(ctx context.Context, dockerCli command.Cli, backend api.Service, opts copyOptions) error {
79-
name, err := opts.toProjectName(dockerCli)
79+
name, err := opts.toProjectName(ctx, dockerCli)
8080
if err != nil {
8181
return err
8282
}

cmd/compose/down.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func downCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
7878
}
7979

8080
func runDown(ctx context.Context, dockerCli command.Cli, backend api.Service, opts downOptions, services []string) error {
81-
project, name, err := opts.projectOrName(dockerCli, services...)
81+
project, name, err := opts.projectOrName(ctx, dockerCli, services...)
8282
if err != nil {
8383
return err
8484
}

cmd/compose/events.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func eventsCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service
5252
}
5353

5454
func runEvents(ctx context.Context, dockerCli command.Cli, backend api.Service, opts eventsOpts, services []string) error {
55-
name, err := opts.toProjectName(dockerCli)
55+
name, err := opts.toProjectName(ctx, dockerCli)
5656
if err != nil {
5757
return err
5858
}

cmd/compose/exec.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func execCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
8282
}
8383

8484
func runExec(ctx context.Context, dockerCli command.Cli, backend api.Service, opts execOpts) error {
85-
projectName, err := opts.toProjectName(dockerCli)
85+
projectName, err := opts.toProjectName(ctx, dockerCli)
8686
if err != nil {
8787
return err
8888
}

cmd/compose/images.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func imagesCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service
5757
}
5858

5959
func runImages(ctx context.Context, dockerCli command.Cli, backend api.Service, opts imageOptions, services []string) error {
60-
projectName, err := opts.toProjectName(dockerCli)
60+
projectName, err := opts.toProjectName(ctx, dockerCli)
6161
if err != nil {
6262
return err
6363
}

cmd/compose/kill.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func killCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
5555
}
5656

5757
func runKill(ctx context.Context, dockerCli command.Cli, backend api.Service, opts killOptions, services []string) error {
58-
project, name, err := opts.projectOrName(dockerCli, services...)
58+
project, name, err := opts.projectOrName(ctx, dockerCli, services...)
5959
if err != nil {
6060
return err
6161
}

cmd/compose/logs.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func logsCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
7171
}
7272

7373
func runLogs(ctx context.Context, dockerCli command.Cli, backend api.Service, opts logsOptions, services []string) error {
74-
project, name, err := opts.projectOrName(dockerCli, services...)
74+
project, name, err := opts.projectOrName(ctx, dockerCli, services...)
7575
if err != nil {
7676
return err
7777
}

cmd/compose/pause.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func pauseCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
4545
}
4646

4747
func runPause(ctx context.Context, dockerCli command.Cli, backend api.Service, opts pauseOptions, services []string) error {
48-
project, name, err := opts.projectOrName(dockerCli, services...)
48+
project, name, err := opts.projectOrName(ctx, dockerCli, services...)
4949
if err != nil {
5050
return err
5151
}
@@ -76,7 +76,7 @@ func unpauseCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Servic
7676
}
7777

7878
func runUnPause(ctx context.Context, dockerCli command.Cli, backend api.Service, opts unpauseOptions, services []string) error {
79-
project, name, err := opts.projectOrName(dockerCli, services...)
79+
project, name, err := opts.projectOrName(ctx, dockerCli, services...)
8080
if err != nil {
8181
return err
8282
}

cmd/compose/port.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func portCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
6363
}
6464

6565
func runPort(ctx context.Context, dockerCli command.Cli, backend api.Service, opts portOptions, service string) error {
66-
projectName, err := opts.toProjectName(dockerCli)
66+
projectName, err := opts.toProjectName(ctx, dockerCli)
6767
if err != nil {
6868
return err
6969
}

cmd/compose/ps.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func psCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service) *c
9292
}
9393

9494
func runPs(ctx context.Context, dockerCli command.Cli, backend api.Service, services []string, opts psOptions) error {
95-
project, name, err := opts.projectOrName(dockerCli, services...)
95+
project, name, err := opts.projectOrName(ctx, dockerCli, services...)
9696
if err != nil {
9797
return err
9898
}

cmd/compose/publish.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func publishCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Servic
5050
}
5151

5252
func runPublish(ctx context.Context, dockerCli command.Cli, backend api.Service, opts publishOptions, repository string) error {
53-
project, err := opts.ToProject(dockerCli, nil)
53+
project, err := opts.ToProject(ctx, dockerCli, nil)
5454
if err != nil {
5555
return err
5656
}

cmd/compose/pull.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ func (opts pullOptions) apply(project *types.Project, services []string) (*types
9494
}
9595

9696
func runPull(ctx context.Context, dockerCli command.Cli, backend api.Service, opts pullOptions, services []string) error {
97-
project, err := opts.ToProject(dockerCli, services)
97+
project, err := opts.ToProject(ctx, dockerCli, services)
9898
if err != nil {
9999
return err
100100
}

cmd/compose/push.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func pushCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
5454
}
5555

5656
func runPush(ctx context.Context, dockerCli command.Cli, backend api.Service, opts pushOptions, services []string) error {
57-
project, err := opts.ToProject(dockerCli, services)
57+
project, err := opts.ToProject(ctx, dockerCli, services)
5858
if err != nil {
5959
return err
6060
}

cmd/compose/remove.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Any data which is not in a volume will be lost.`,
6060
}
6161

6262
func runRemove(ctx context.Context, dockerCli command.Cli, backend api.Service, opts removeOptions, services []string) error {
63-
project, name, err := opts.projectOrName(dockerCli, services...)
63+
project, name, err := opts.projectOrName(ctx, dockerCli, services...)
6464
if err != nil {
6565
return err
6666
}

cmd/compose/restart.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func restartCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Servic
5656
}
5757

5858
func runRestart(ctx context.Context, dockerCli command.Cli, backend api.Service, opts restartOptions, services []string) error {
59-
project, name, err := opts.projectOrName(dockerCli)
59+
project, name, err := opts.projectOrName(ctx, dockerCli)
6060
if err != nil {
6161
return err
6262
}

cmd/compose/run.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ func runCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service) *
156156
return nil
157157
}),
158158
RunE: Adapt(func(ctx context.Context, args []string) error {
159-
project, err := p.ToProject(dockerCli, []string{options.Service}, cgo.WithResolvedPaths(true), cgo.WithDiscardEnvFile)
159+
project, err := p.ToProject(ctx, dockerCli, []string{options.Service}, cgo.WithResolvedPaths(true), cgo.WithDiscardEnvFile)
160160
if err != nil {
161161
return err
162162
}

cmd/compose/scale.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func scaleCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
6161

6262
func runScale(ctx context.Context, dockerCli command.Cli, backend api.Service, opts scaleOptions, serviceReplicaTuples map[string]int) error {
6363
services := maps.Keys(serviceReplicaTuples)
64-
project, err := opts.ToProject(dockerCli, services)
64+
project, err := opts.ToProject(ctx, dockerCli, services)
6565
if err != nil {
6666
return err
6767
}

cmd/compose/start.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func startCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
4444
}
4545

4646
func runStart(ctx context.Context, dockerCli command.Cli, backend api.Service, opts startOptions, services []string) error {
47-
project, name, err := opts.projectOrName(dockerCli, services...)
47+
project, name, err := opts.projectOrName(ctx, dockerCli, services...)
4848
if err != nil {
4949
return err
5050
}

cmd/compose/stats.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ Refer to https://docs.docker.com/go/formatting/ for more information about forma
6363
}
6464

6565
func runStats(ctx context.Context, dockerCli command.Cli, opts statsOptions, service []string) error {
66-
name, err := opts.ProjectOptions.toProjectName(dockerCli)
66+
name, err := opts.ProjectOptions.toProjectName(ctx, dockerCli)
6767
if err != nil {
6868
return err
6969
}

cmd/compose/stop.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func stopCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
5454
}
5555

5656
func runStop(ctx context.Context, dockerCli command.Cli, backend api.Service, opts stopOptions, services []string) error {
57-
project, name, err := opts.projectOrName(dockerCli, services...)
57+
project, name, err := opts.projectOrName(ctx, dockerCli, services...)
5858
if err != nil {
5959
return err
6060
}

cmd/compose/top.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func topCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service) *
5050
}
5151

5252
func runTop(ctx context.Context, dockerCli command.Cli, backend api.Service, opts topOptions, services []string) error {
53-
projectName, err := opts.toProjectName(dockerCli)
53+
projectName, err := opts.toProjectName(ctx, dockerCli)
5454
if err != nil {
5555
return err
5656
}

cmd/compose/viz.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func vizCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service) *
6565

6666
func runViz(ctx context.Context, dockerCli command.Cli, backend api.Service, opts *vizOptions) error {
6767
_, _ = fmt.Fprintln(os.Stderr, "viz command is EXPERIMENTAL")
68-
project, err := opts.ToProject(dockerCli, nil)
68+
project, err := opts.ToProject(ctx, dockerCli, nil)
6969
if err != nil {
7070
return err
7171
}

cmd/compose/wait.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func waitCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
6161
}
6262

6363
func runWait(ctx context.Context, dockerCli command.Cli, backend api.Service, opts *waitOptions) (int64, error) {
64-
_, name, err := opts.projectOrName(dockerCli)
64+
_, name, err := opts.projectOrName(ctx, dockerCli)
6565
if err != nil {
6666
return 0, err
6767
}

cmd/compose/watch.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func watchCommand(p *ProjectOptions, dockerCli command.Cli, backend api.Service)
6363
}
6464

6565
func runWatch(ctx context.Context, dockerCli command.Cli, backend api.Service, watchOpts watchOptions, buildOpts buildOptions, services []string) error {
66-
project, err := watchOpts.ToProject(dockerCli, nil)
66+
project, err := watchOpts.ToProject(ctx, dockerCli, nil)
6767
if err != nil {
6868
return err
6969
}

0 commit comments

Comments
 (0)