@@ -84,14 +84,14 @@ func run(ctx context.Context, name string, listTools bool, pullCommunity bool) e
8484
8585func buildDockerEnv (additionalEnv ... string ) []string {
8686 env := []string {"PATH=" + os .Getenv ("PATH" )}
87-
87+
8888 // On Windows, Docker also needs ProgramW6432
8989 // See https://github.com/docker/mcp-registry/issues/79 for more details
9090 programW6432 := os .Getenv ("ProgramW6432" )
9191 if runtime .GOOS == "windows" && programW6432 != "" {
9292 env = append (env , "ProgramW6432=" + programW6432 )
9393 }
94-
94+
9595 return append (env , additionalEnv ... )
9696}
9797
@@ -127,11 +127,21 @@ func buildMcpImage(ctx context.Context, server servers.Server) error {
127127 var cmd * exec.Cmd
128128 token := os .Getenv ("GITHUB_TOKEN" )
129129
130+ buildArgs := []string {
131+ "-f" , server .GetDockerfile (), "-t" , "check" , "-t" , server .Image , "--label" , "org.opencontainers.image.revision=" + sha ,
132+ }
133+
134+ if server .Source .BuildTarget != "" {
135+ buildArgs = append (buildArgs , "--target" , server .Source .BuildTarget )
136+ }
137+
138+ buildArgs = append (buildArgs , gitURL )
139+
130140 if token != "" {
131- 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 )
141+ cmd = exec .CommandContext (ctx , "docker" , append ([] string { "buildx" , "build" , "--secret" , "id=GIT_AUTH_TOKEN" }, buildArgs ... ) ... )
132142 cmd .Env = buildDockerEnv ("GIT_AUTH_TOKEN=" + token )
133143 } else {
134- cmd = exec .CommandContext (ctx , "docker" , "buildx" , "build" , "-f" , server . GetDockerfile (), "-t" , "check" , "-t" , server . Image , "--label" , "org.opencontainers.image.revision=" + sha , gitURL )
144+ cmd = exec .CommandContext (ctx , "docker" , append ([] string { "buildx" , "build" }, buildArgs ... ) ... )
135145 cmd .Env = buildDockerEnv ()
136146 }
137147
0 commit comments