问题描述:通过在Mac M1电脑上构建的镜像,在linux x86的服务器上运行不起来,因为编译原理不一样。
构建好的镜像ID,通过docker inspect命令可以查看镜像的架构;
如下,同样的服务,构建出来的镜像架构确实不一样的。
[root@one-01 ~]# docker inspect 150b12879d3b | grep Architecture
"Architecture": "arm64",
[root@one-01 ~]#
[root@one-01 ~]# docker inspect 3ca177c70621 | grep Architecture
"Architecture": "amd64",
[root@one-01 ~]#
构建arm64使用的Dockerdile
FROM openjdk:8
RUN apt install tzdata &&
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ARG NAME
ARG FILE_URL
ENV APP_NAME=${NAME}
ENV PROFILE=ca
ENV PORT=8080
ADD ${FILE_URL} app.jar
ENTRYPOINT java -jar -Dspring.profiles.active=${PROFILE} -Dserver.port=${PORT} -Duser.timezone=Asia/Shanghai /app.jar
构建amd64使用的镜像
FROM anapsix/alpine-java:8_server-jre_unlimited
RUN ln -sf /usr/s