arm下的java_ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?

为什么需要ARM架构下的OpenJDK8的Docker镜像?

对现有的Java应用,之前一直运行在x86处理器环境下,编译和运行都是JDK8,如今在树莓派的Docker环境运行(或者其他ARM架构电脑,例如华为泰山服务器),需要JDK8镜像作为基础镜像。

现在有什么问题?

在《ARM64架构下,OpenJDK的官方Docker镜像为何没有8版本?》一文中,已经确定了OpenJDK官方并未提供8版本的Docker镜像,因此,原有的Java应用,如果是基于JDK8编译和运行的,现在从X86架构转战到ARM架构的Docker环境下,就会面临没有JDK基础镜像的问题;

应对之道

自己编译一个8版本的OpenJDK安装包,以此来做Docker镜像;

Oracle提供了ARM版本的JDKD安装包,以此包来做Docker镜像;

用OpenJDK的11版本,但是11和8的差异要自行处理;

对于第一种方式,自己编译8版本的OpenJDK,难度太大(对我自己而言),因为编译OpenJDK需要低版本的OpenJDK作为编译工具,也就是说我要找到ARM版本的OpenJDK7,才能编译ARM版本的OpenJDK8,因此我觉得这样做的难度太大…

今天要讨论的是第二种和第三种,

环境信息

硬件:树莓派4B

操作系统:openfans的64为Debian

Docker:19.03.1

docker-compose:1.24.1

参考文档

在树莓派4B安装64位Debian和Docker的方法,请参考《树莓派4B安装64位Linux(不用显示器键盘鼠标)》

将Java应用制作成Docker镜像,请参考《Docker与Jib(maven插件版)实战》

Java应用的源码

本文要解决的问题是ARM架构的电脑上,如何在Docker环境运行Java应用,因此需要有个Java应用来验证,这里找了个最普通的SpringBoot应用,提供一个hello world的http接口,通过jib插件构建成Docker镜像,整个应用的源码可以从GitHub上下载,地址和链接信息如下表所示:

这个git项目中有多个文件夹,本章的源码在hellojib文件夹下,如下图红框所示:

操作步骤简介

接下来的操作步骤,如下图所示:

ARM机器上安装JDK

要想在ARM机器上编译构建hellojib工程,就要把JDK和Maven装好,先装JDK;

上述JDK文件解压后是个名为jdk1.8.0_221的文件夹,将此文件夹放在ARM电脑的/usr/lib/jvm目录下;

打开文件~/.bashrc,增加以下内容:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_221

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

执行source ~/.bashrc,使得配置立即生效;

执行命令java -version试试JDK是否已经可用:

root@raspbian:~# java -version

java version "1.8.0_221"

Java(TM) SE Runtime Environment (build 1.8.0_221-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

ARM机器上安装Maven

安装包解压之后是个名为apache-maven-3.6.2的文件夹,将此文件夹放在ARM电脑的/usr/local目录下;

打开文件~/.bashrc,增加以下内容:

export MAVEN_HOME=/usr/local/apache-maven-3.6.2

export PATH=$MAVEN_HOME/bin:$PATH

执行source ~/.bashrc,使得配置立即生效;

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值