Skip to content

Commit a92eaae

Browse files
fixes task build on windows (#98)
resolves #79
1 parent 2f9c8be commit a92eaae

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

cmd/build/main.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"os"
99
"os/exec"
1010
"path/filepath"
11+
"runtime"
1112
"strings"
1213

1314
"github.com/docker/mcp-registry/internal/mcp"
@@ -81,6 +82,19 @@ func run(ctx context.Context, name string, listTools bool, pullCommunity bool) e
8182
return nil
8283
}
8384

85+
func buildDockerEnv(additionalEnv ...string) []string {
86+
env := []string{"PATH=" + os.Getenv("PATH")}
87+
88+
// On Windows, Docker also needs ProgramW6432
89+
// See https://github.com/docker/mcp-registry/issues/79 for more details
90+
programW6432 := os.Getenv("ProgramW6432")
91+
if runtime.GOOS == "windows" && programW6432 != "" {
92+
env = append(env, "ProgramW6432="+programW6432)
93+
}
94+
95+
return append(env, additionalEnv...)
96+
}
97+
8498
func buildMcpImage(ctx context.Context, server servers.Server) error {
8599
projectURL := server.Source.Project
86100
branch := server.Source.Branch
@@ -115,10 +129,10 @@ func buildMcpImage(ctx context.Context, server servers.Server) error {
115129

116130
if token != "" {
117131
cmd = exec.CommandContext(ctx, "docker", "buildx", "build", "--secret", "id=GIT_AUTH_TOKEN", "-f", server.GetDockerfile(), "-t", "check", "-t", server.Image, "--label", "org.opencontainers.image.revision="+sha, gitURL)
118-
cmd.Env = []string{"GIT_AUTH_TOKEN=" + token, "PATH=" + os.Getenv("PATH")}
132+
cmd.Env = buildDockerEnv("GIT_AUTH_TOKEN=" + token)
119133
} else {
120134
cmd = exec.CommandContext(ctx, "docker", "buildx", "build", "-f", server.GetDockerfile(), "-t", "check", "-t", server.Image, "--label", "org.opencontainers.image.revision="+sha, gitURL)
121-
cmd.Env = []string{"PATH=" + os.Getenv("PATH")}
135+
cmd.Env = buildDockerEnv()
122136
}
123137

124138
cmd.Dir = os.TempDir()

0 commit comments

Comments
 (0)