Skip to content

Commit 69b066b

Browse files
feat: allow user configurable docker compose version env variable (#1133)
Signed-off-by: Shubharanshu Mahapatra <[email protected]>
1 parent 0cb6a55 commit 69b066b

File tree

5 files changed

+38
-0
lines changed

5 files changed

+38
-0
lines changed

cmd/finch/devcontainer_patch.go

+15
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ package main
88
import (
99
"bytes"
1010
"encoding/json"
11+
"errors"
1112
"fmt"
1213
"strings"
1314

1415
"github.com/containerd/nerdctl/v2/pkg/inspecttypes/dockercompat"
1516
"github.com/docker/go-connections/nat"
1617
"github.com/sirupsen/logrus"
18+
"golang.org/x/exp/slices"
1719

1820
"github.com/runfinch/finch/pkg/command"
1921
)
@@ -108,3 +110,16 @@ func inspectContainerOutputHandler(cmd command.Command) error {
108110
prettyPrintJSON(stdoutBuf.String())
109111
return err
110112
}
113+
114+
func handleDockerCompatComposeVersion(cmdName string, nc nerdctlCommand, runArgs []string) error {
115+
if cmdName == "compose" && nc.fc.DockerCompat && slices.Contains(runArgs, "version") {
116+
ver := nc.systemDeps.Env("DOCKER_COMPOSE_VERSION")
117+
if ver != "" {
118+
logrus.Warn("Displaying docker compose version set as environment variable DOCKER_COMPOSE_VERSION...")
119+
fmt.Println(ver)
120+
return nil
121+
}
122+
return errors.New("DOCKER_COMPOSE_VERSION environment variable is not set")
123+
}
124+
return errors.New("")
125+
}

cmd/finch/nerdctl.go

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ type NerdctlCommandSystemDeps interface {
3232
system.FilePathJoiner
3333
system.AbsFilePath
3434
system.FilePathToSlash
35+
system.EnvGetter
3536
}
3637

3738
type nerdctlCommandCreator struct {

cmd/finch/nerdctl_native.go

+4
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@ func (nc *nerdctlCommand) run(cmdName string, args []string) error {
8888
return inspectContainerOutputHandler(cmd)
8989
}
9090

91+
if err := handleDockerCompatComposeVersion(cmdName, *nc, cmdArgs); err == nil {
92+
return nil
93+
}
94+
9195
return nc.ncc.Create(cmdArgs...).Run()
9296

9397
}

cmd/finch/nerdctl_remote.go

+4
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,10 @@ func (nc *nerdctlCommand) run(cmdName string, args []string) error {
341341
return inspectContainerOutputHandler(cmd)
342342
}
343343

344+
if err := handleDockerCompatComposeVersion(cmdName, *nc, cmdArgs); err == nil {
345+
return nil
346+
}
347+
344348
return nc.ncc.Create(runArgs...).Run()
345349
}
346350

pkg/mocks/nerdctl_cmd_system_deps.go

+14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)