@@ -12,11 +12,14 @@ def multiarch_go_image(name, binary):
1212
1313 tar_target = "_{}.tar" .format (name )
1414 image_target = "_{}.image" .format (name )
15- unix_binary_entrypoint = ["/app/{}" .format (native .package_relative_label (binary ).name )]
16- windows_binary_entrypoint = ["C:\\ app\\ {}" .format (native .package_relative_label (binary ).name )]
15+ binary_name = native .package_relative_label (binary ).name
1716
1817 image_layer (
1918 name = tar_target ,
19+ srcs = select ({
20+ "@rules_go//go/platform:linux" : {"app/{}" .format (binary_name ): binary },
21+ "@rules_go//go/platform:windows" : {"app/{}.exe" .format (binary_name ): binary },
22+ }),
2023 srcs = {"app/{}" .format (native .package_relative_label (binary ).name ): binary },
2124 # Don't build un-transitioned images, as the default target architecture might be unsupported
2225 # For example when building on linux-i386.
@@ -26,12 +29,12 @@ def multiarch_go_image(name, binary):
2629 image_manifest (
2730 name = image_target ,
2831 base = select ({
29- "@rules_go//go/platform:linux" : Label ("@distroless_static" ),
30- "@rules_go//go/platform:windows" : Label ("@nanoserver" ),
32+ "@rules_go//go/platform:linux" : Label ("@distroless_static" ),
33+ "@rules_go//go/platform:windows" : Label ("@nanoserver" ),
3134 }),
3235 entrypoint = select ({
33- "@rules_go//go/platform:linux" : unix_binary_entrypoint ,
34- "@rules_go//go/platform:windows" : windows_binary_entrypoint ,
36+ "@rules_go//go/platform:linux" : [ "/app/{}" . format ( binary_name )] ,
37+ "@rules_go//go/platform:windows" : [ "C: \\ app \\ {}.exe" . format ( binary_name )] ,
3538 }),
3639 layers = [tar_target ],
3740 # Don't build un-transitioned images, as the default target architecture might be unsupported
0 commit comments