@@ -3,7 +3,7 @@ defmodule Mix.Tasks.Dockers.Build do
33
44 use Mix.Task
55
6- @ shortdoc "Build multi-architecture docker runner image"
6+ @ shortdoc "Build docker runner image"
77
88 def run ( [ slug ] ) do
99 { :ok , _started } = Application . ensure_all_started ( :porcelain )
@@ -18,55 +18,12 @@ defmodule Mix.Tasks.Dockers.Build do
1818 defp build ( % { slug: "ts" } ) , do: :noop
1919
2020 defp build ( meta ) do
21- # Ensure buildx is properly set up
22- setup_buildx ( )
23-
24- # Always use multi-architecture builds with push
25- platforms = "linux/amd64,linux/arm64"
26- load_or_push = "--push"
27-
28- # Build the image
2921 command =
30- "docker buildx build --platform #{ platforms } " <>
31- "#{ load_or_push } " <>
32- "-t #{ meta . docker_image } " <>
33- "--file #{ root ( ) } /apps/runner/dockers/#{ meta . slug } /Dockerfile " <>
34- "#{ root ( ) } /apps/runner/dockers/#{ meta . slug } /"
35-
36- IO . puts ( "Command: #{ command } " )
37-
38- IO . puts (
39- "Start building image for #{ meta . slug } , image: #{ meta . docker_image } , platforms: #{ platforms } "
40- )
41-
42- result = Porcelain . shell ( command )
43- IO . puts ( inspect ( result ) )
44- end
45-
46- defp setup_buildx do
47- # Check if the builder exists
48- check_builder = Porcelain . shell ( "docker buildx inspect multi-arch-builder" , err: :string )
49-
50- if check_builder . status != 0 do
51- # Create a new builder instance
52- IO . puts ( "Setting up buildx multi-architecture builder..." )
53-
54- create_builder =
55- Porcelain . shell (
56- "docker buildx create --name multi-arch-builder --driver docker-container --bootstrap" ,
57- err: :string
58- )
59-
60- IO . puts ( create_builder . out )
22+ "docker build -t #{ meta . docker_image } --file #{ root ( ) } /apps/runner/dockers/#{ meta . slug } /Dockerfile #{ root ( ) } /apps/runner/dockers/#{ meta . slug } /"
6123
62- # Use the new builder
63- use_builder = Porcelain . shell ( "docker buildx use multi-arch-builder" , err: :string )
64- IO . puts ( use_builder . out )
65- else
66- # Use existing builder
67- use_builder = Porcelain . shell ( "docker buildx use multi-arch-builder" , err: :string )
68- IO . puts ( use_builder . out )
69- end
24+ IO . puts ( "Start building image for #{ meta . slug } " )
25+ result = Porcelain . shell ( command , err: :string )
26+ IO . puts ( result . out )
7027 end
7128
7229 defp root do
0 commit comments