Use docker info to get arch

This commit is contained in:
Donal McBreen
2024-08-28 15:50:46 +01:00
parent eab7d3adc5
commit 5f2384f123
7 changed files with 19 additions and 9 deletions

View File

@@ -29,9 +29,7 @@ class Kamal::Configuration::Builder
def local_arches
@local_arches ||= if remote
uname_m = `uname -m`.strip
local_arch = uname_m == "x86_64" ? "amd64" : uname_m
arches & [ local_arch ]
arches & [ Kamal::Utils.docker_arch ]
else
arches
end

View File

@@ -81,4 +81,16 @@ module Kamal::Utils
def join_commands(commands)
commands.map(&:strip).join(" ")
end
def docker_arch
arch = `docker info --format '{{.Architecture}}'`.strip
case arch
when /aarch64/
"arm64"
when /x86_64/
"amd64"
else
arch
end
end
end

View File

@@ -145,10 +145,10 @@ class CommandsBuilderTest < ActiveSupport::TestCase
end
def local_arch
`uname -m`.strip == "x86_64" ? "amd64" : "arm64"
Kamal::Utils.docker_arch
end
def remote_arch
`uname -m`.strip == "x86_64" ? "arm64" : "amd64"
Kamal::Utils.docker_arch == "arm64" ? "amd64" : "arm64"
end
end

View File

@@ -38,5 +38,5 @@ builder:
readiness_delay: 0
builder:
arch: <%= `uname -m`.strip == "x86_64" ? "arm64" : "amd64" %>
arch: <%= Kamal::Utils.docker_arch == "arm64" ? "amd64" : "arm64" %>
remote: ssh://app@1.1.1.5

View File

@@ -42,5 +42,5 @@ ssh:
port: 22
builder:
arch: <%= `uname -m`.strip == "x86_64" ? "arm64" : "amd64" %>
arch: <%= Kamal::Utils.docker_arch == "arm64" ? "amd64" : "arm64" %>
remote: ssh://app@1.1.1.5:2122

View File

@@ -24,7 +24,7 @@ registry:
password: root
builder:
driver: docker
arch: <%= uname_m = `uname -m`; uname_m == "x86_64" ? "amd64" : uname_m %>
arch: <%= Kamal::Utils.docker_arch %>
args:
COMMIT_SHA: <%= `git rev-parse HEAD` %>
healthcheck:

View File

@@ -18,7 +18,7 @@ registry:
password: root
builder:
driver: docker
arch: <%= uname_m = `uname -m`; uname_m == "x86_64" ? "amd64" : uname_m %>
arch: <%= Kamal::Utils.docker_arch %>
args:
COMMIT_SHA: <%= `git rev-parse HEAD` %>
healthcheck: