簡體   English   中英

Docker exec /bin/sh:Arm64 上的 exec 格式錯誤

[英]Docker exec /bin/sh: exec format error on Arm64

我的 Dockerfile 在 x86 機器上運行,但在arm64架構的機器上失敗; 特別是在a1.2xlarge (一個aws EC2-instance )上。

運行時出錯docker compose up -d

#0 0.462 exec /bin/sh: exec format error
------
failed to solve: executor failed running [/bin/sh -c apt-get update]: exit code: 1

Dockerfile 看起來像這樣

FROM phusion/passenger-ruby27
ENV HOME /root
RUN apt-get update

docker-v

Docker version 20.10.17, build 100c701

uname -a

Linux Ubuntu SMP Thu Jun 9 13:06:11 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

lsb_release -a

Ubuntu 20.04.4 LTS

phusion/passenger-ruby27存儲庫通過標簽分隔基於 arm64 的圖像(截至 2022 年 11 月)。

2.3.12.3.1-arm64

假設您想在arm64實例上構建arm64圖像,解決此問題的一種簡單方法是將標記作為構建參數傳遞。

Dockerfile:

ARG BASE_TAG
FROM phusion/passenger-ruby27:$BASE_TAG
ENV HOME /root
RUN apt-get update

構建示例:

# on arm
$ docker build --build-arg BASE_TAG=2.3.1-arm64 .

# on amd
$ docker build --build-arg BASE_TAG=2.3.1 .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM