Skip to content

Commit fe8c278

Browse files
committed
warn user remote resource is disabled
Signed-off-by: Nicolas De Loof <[email protected]>
1 parent a345515 commit fe8c278

File tree

3 files changed

+29
-23
lines changed

3 files changed

+29
-23
lines changed

cmd/compose/compose.go

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -252,29 +252,17 @@ func (o *ProjectOptions) ToProject(dockerCli command.Cli, services []string, po
252252
}
253253

254254
func (o *ProjectOptions) configureRemoteLoaders(dockerCli command.Cli, po []cli.ProjectOptionsFn) ([]cli.ProjectOptionsFn, error) {
255-
enabled, err := remote.GitRemoteLoaderEnabled()
255+
git, err := remote.NewGitRemoteLoader(o.Offline)
256256
if err != nil {
257257
return nil, err
258258
}
259-
if enabled {
260-
git, err := remote.NewGitRemoteLoader(o.Offline)
261-
if err != nil {
262-
return nil, err
263-
}
264-
po = append(po, cli.WithResourceLoader(git))
265-
}
266259

267-
enabled, err = remote.OCIRemoteLoaderEnabled()
260+
oci, err := remote.NewOCIRemoteLoader(dockerCli, o.Offline)
268261
if err != nil {
269262
return nil, err
270263
}
271-
if enabled {
272-
git, err := remote.NewOCIRemoteLoader(dockerCli, o.Offline)
273-
if err != nil {
274-
return nil, err
275-
}
276-
po = append(po, cli.WithResourceLoader(git))
277-
}
264+
265+
po = append(po, cli.WithResourceLoader(git), cli.WithResourceLoader(oci))
278266
return po, nil
279267
}
280268

pkg/remote/git.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,17 @@ import (
2626
"strconv"
2727

2828
"github.com/adrg/xdg"
29-
3029
"github.com/compose-spec/compose-go/cli"
3130
"github.com/compose-spec/compose-go/loader"
3231
"github.com/compose-spec/compose-go/types"
3332
"github.com/docker/compose/v2/pkg/api"
3433
"github.com/moby/buildkit/util/gitutil"
3534
)
3635

37-
func GitRemoteLoaderEnabled() (bool, error) {
38-
if v := os.Getenv("COMPOSE_EXPERIMENTAL_GIT_REMOTE"); v != "" {
36+
const GIT_REMOTE_ENABLED = "COMPOSE_EXPERIMENTAL_GIT_REMOTE"
37+
38+
func gitRemoteLoaderEnabled() (bool, error) {
39+
if v := os.Getenv(GIT_REMOTE_ENABLED); v != "" {
3940
enabled, err := strconv.ParseBool(v)
4041
if err != nil {
4142
return false, fmt.Errorf("COMPOSE_EXPERIMENTAL_GIT_REMOTE environment variable expects boolean value: %w", err)
@@ -74,6 +75,14 @@ func (g gitRemoteLoader) Accept(path string) bool {
7475
var commitSHA = regexp.MustCompile(`^[a-f0-9]{40}$`)
7576

7677
func (g gitRemoteLoader) Load(ctx context.Context, path string) (string, error) {
78+
enabled, err := gitRemoteLoaderEnabled()
79+
if err != nil {
80+
return "", err
81+
}
82+
if !enabled {
83+
return "", fmt.Errorf("experimental git remote resource is disabled. %q must be set", GIT_REMOTE_ENABLED)
84+
}
85+
7786
ref, err := gitutil.ParseGitRef(path)
7887
if err != nil {
7988
return "", err

pkg/remote/oci.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,18 @@ import (
2626
"strings"
2727

2828
"github.com/adrg/xdg"
29+
"github.com/compose-spec/compose-go/loader"
2930
"github.com/distribution/reference"
3031
"github.com/docker/buildx/store/storeutil"
3132
"github.com/docker/buildx/util/imagetools"
3233
"github.com/docker/cli/cli/command"
3334
v1 "github.com/opencontainers/image-spec/specs-go/v1"
34-
35-
"github.com/compose-spec/compose-go/loader"
3635
)
3736

38-
func OCIRemoteLoaderEnabled() (bool, error) {
39-
if v := os.Getenv("COMPOSE_EXPERIMENTAL_OCI_REMOTE"); v != "" {
37+
const OCI_REMOTE_ENABLED = "COMPOSE_EXPERIMENTAL_OCI_REMOTE"
38+
39+
func ociRemoteLoaderEnabled() (bool, error) {
40+
if v := os.Getenv(OCI_REMOTE_ENABLED); v != "" {
4041
enabled, err := strconv.ParseBool(v)
4142
if err != nil {
4243
return false, fmt.Errorf("COMPOSE_EXPERIMENTAL_OCI_REMOTE environment variable expects boolean value: %w", err)
@@ -76,6 +77,14 @@ func (g ociRemoteLoader) Accept(path string) bool {
7677
}
7778

7879
func (g ociRemoteLoader) Load(ctx context.Context, path string) (string, error) {
80+
enabled, err := ociRemoteLoaderEnabled()
81+
if err != nil {
82+
return "", err
83+
}
84+
if !enabled {
85+
return "", fmt.Errorf("experimental OCI remote resource is disabled. %q must be set", OCI_REMOTE_ENABLED)
86+
}
87+
7988
if g.offline {
8089
return "", nil
8190
}

0 commit comments

Comments
 (0)