本文参考:https://blog.csdn.net/boling_cavalry/article/details/101855126,感谢提供思路
多的不说,情况大家都知道常规Java开发都是基于64位cpu。如果要在docker上运行jar项目,编译镜像大都from java:8。
实际上却不能在树莓派上如愿运行,因为PI的cpu是arm架构的,要想成功运行,必须准备arm电脑上正常运行的jdk版本,编译成docker镜像。
本文提到的树莓派4b使用官方镜像32位系统,树莓派3b逻辑上应该也可按本文进行重现,各位欢迎大佬留言。
环境信息
- 树莓派4b 4核4G版本
- 系统Linux raspberrypi4 4.19.97-v7l+ #1294 【buster】
- Docker version 19.03.6, build 369ce74
参考文档
https://blog.csdn.net/boling_cavalry/article/details/101855126
软件准备
- xshell
- jdk-8u241-linux-arm32-vfp-hflt.tar.gz 【其他版本各位自行选择,注意arm32】
环境准备
- 系统基础包:buildpack-deps
注意:参考文档说用docker pull拉取镜像:docker pull buildpack-deps:stretch-scm
如果是buster,则使用命令:docker pull buildpack-deps:buster-scm
实际上各位要注意自己的系统是什么版本,如:stretch还是buster等;
同时,各位的网络不一定可以顺利拉取这个镜像,毕竟200多Mb的数据在网络不稳的情况下,很容易超时导致失败。
所以此处补充一下如何在本机编译 buildpack-deps镜像:
1
2
3git clone https://github.com/docker-library/buildpack-deps.git cd buildpack-deps/debian/buster docker build -t buildpack-deps:buster .
此操作会要耗时数分钟,取决于自己的机器性能,耐心等待即可,成功后使用docker images可以查看到镜像。
- Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26#Docker image of JDK8 in ARM32 # VERSION 8 # Author: nicolas FROM buildpack-deps:buster-scm MAINTAINER nicolas <mmxiutu@gmail.com> # Default to UTF-8 file.encoding ENV LANG C.UTF-8 ENV JAVA_HOME /usr/local/jdk8 ENV PATH $JAVA_HOME/bin:$PATH ENV JDK_FILE jdk-8u241-linux-arm32-vfp-hflt.tar.gz COPY $JDK_FILE /usr/local/ RUN mkdir -p "$JAVA_HOME"; tar --extract --file /usr/local/$JDK_FILE --directory "$JAVA_HOME" --strip-components 1 --no-same-owner; rm /usr/local/$JDK_FILE
以上参数请不要完全照抄,注意修改from镜像。
执行编译命令编译镜像:docker build -t xxx/arm32jdk:8 .
查看镜像后,执行测试命令:docker run --rm xxx/arm32jdk:8 java -version
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16>> docker build -t cha1024/arm32jdk:8 . >> docker images REPOSITORY TAG IMAGE ID CREATED SIZE cha1024/arm32jdk 8 c7d0e26382dd 19 minutes ago 493MB buildpack-deps buster-scm 066228d85836 5 weeks ago 242MB >> docker run --rm cha1024/arm32jdk:8 java -version java version "1.8.0_241" Java(TM) SE Runtime Environment (build 1.8.0_241-b07) Java HotSpot(TM) Server VM (build 25.241-b07, mixed mode)
至此,arm32的jdk编译完成,欢迎讨论
最后
以上就是现实酒窝最近收集整理的关于完美解决ARM32架构下的Docker环境,OpenJDK官方没有8版本镜像,树莓派4b逐步操作示例的全部内容,更多相关完美解决ARM32架构下内容请搜索靠谱客的其他文章。
发表评论 取消回复