当我在带有M1芯片的Mac上运行此映像时,一切都正常。但当我尝试用Ubuntu在服务器上运行时,容器会出现错误">exec/bin/sh:exec格式错误">
FROM mcr.microsoft.com/playwright:v1.18.1-arm64
RUN apt-get -y update && apt-get -y upgrade
ADD build/libs/program.jar /tmp
WORKDIR /tmp
RUN apt-get -y install openjdk-11-jre-headless && apt-get clean;
CMD java -jar program.jar
此错误显示在每个第一个命令RUN上。即使命令类似于";RUN ls-la";,我会得到"bin/sh-cls-la返回了一个非零代码:1">
我试图更改SHELL["bin/bash","-c"]和图像版本,但没有效果。
如果我使用";来自ubuntu";,命令可以工作,但我需要具有浏览器依赖关系的Playwright的图像。
您正在使用ARM架构构建映像(请使用docker inspect <your_image> | grep "Archi"
进行检查(。此映像无法在其他体系结构上执行(可能是Ubuntu服务器的amd64
(。
您应该:
- 使用
amd64
基础图像(例如,mcr.microsoft.com/playwright:v1.18.1-arm64
=>mcr.microsoft.com/playwright:v1.18.1-focal
( - 用
docker build --platform linux/amd64
塑造你的形象