制作基础镜像
arm64 centos7 + arm64jdk
1、制作基础镜像:
Dockerfile:
FROM centos@sha256:43964203bf5d7fe38c6fca6166ac89e4c095e2b0c0a28f6c7c678a1348ddc7fa
MAINTAINER zxg
ADD jdk-8u301-linux-aarch64.tar.gz /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_301
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
WORKDIR /root
EXPOSE 8080
CMD /bin/bash
- JDK下载地址:
https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html
选择 Linux ARM 64 Compressed Archive
- 执行脚本:
docker build -f ./Dockerfile -t mycentos:1.0 .
2、打Jar包脚本:
Dockerfile:
FROM mycentos:1.0
MAINTAINER zxg
ENV TZ=Asia/Shanghai
WORKDIR /data
COPY myboot-0.0.1-SNAPSHOT.jar /data/myboot-0.0.1-SNAPSHOT.jar
EXPOSE 8080
CMD ["java","-jar","/data/myboot-0.0.1-SNAPSHOT.jar"]
3、其他问题解决
Arm64的镜像无法在X86的系统下运行,即上面制作的基础镜像mycentos,不能直接运行,但是打jar包不受影响。
原因:在 x86_64 平台上缺少运行 arm64 的 Python 解释器所需要的“环境依赖”
*解决步骤:*
-
在https://github.com/multiarch/qemu-user-static/releases下载qemu-aarch64-static文件.
-
拷贝文件:
sudo cp qemu-aarch64-static /usr/bin/
chmod +x /usr/bin/qemu-aarch64-static
- 运行命令:
docker run --rm --privileged multiarch/qemu-user-static:register
- 启动容器:
docker run -it -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static (image-name):tag