关于docker基于arm64平台配置jdk1.8环境记录
docker有默认的openjdk镜像,但是版本较低, 我记得好像是基于1.7的,如果你需要以上版本的docker镜像, 可以按照我的方式试试。首先看先docker官网上的镜像:Docker Hub具体自己上官网查看=》我用得是基于ubuntu基础镜像自己制作1.8版本的jre镜像分以下几个步骤:一:按照上序方式直接下载arm64位平台ubuntu基础镜像,或者执行docker pull --pl
·
docker有默认的openjdk镜像,但是版本较低, 我记得好像是基于1.7的,如果你需要以上版本的docker镜像, 可以按照我的方式试试。
首先看先docker官网上的镜像:Docker Hub
具体自己上官网查看
=》我用得是基于ubuntu基础镜像自己制作1.8版本的jre镜像
分以下几个步骤:
一:按照上序方式直接下载arm64位平台ubuntu基础镜像,
或者执行docker pull --platfrom=arm64 ubuntu:16.04进行拉取,拉下来可以使用docker inspect 指令查看下docker适配的平台
这样就是64位平台了
二:下载基于arm64位的jdk安装包, 这个网上有,我这里提供一份1.8.0.211版本的安装包
链接:https://pan.baidu.com/s/1o2hu-tqwsB3jciKQsrrxoQ
提取码:0315
>>>>>>>>>>>tomcat8.5.24
链接:https://pan.baidu.com/s/1t8ppGYti_uNgC6h2OCgnqQ
提取码:nin9
三:基于ubuntu基础镜像制作jdk环境变量
Dockerfile_arm:
ARG BUILD_FROM=arm64v8 //指定相关平台
FROM ${BUILD_FROM}/ubuntu:16.04 //这里是你拉取的ubuntu镜像名称
RUN apt-get -y update //可以删除
ADD jre /build/jre //将jdk安装包解压为文件夹 copy至容器
#RUN tar -zxf /build/jre/jdk-8u221-linux-x64.tar.gz -c /build/
#RUN tar -zxf /build/jre/apache-tomcat-8.5.42.tar.gz -c /build/
#RUN apt-get -y update &&\
apt-get install -y \
vim patch unzip \
git make wget \
curl rsync
RUN mv /build/jre/apache-tomcat-8.5.42 /opt/tomcat
RUN mv /build/jre/jdk1.8.0_211 /opt/jdk
RUN sed -i '$a\JAVA_HOME=/opt/jdk\nJAVA_BIN=/opt/jdk/bin\nJRE_HOME=/opt/jdk/jre\nCLASSPATH=/opt/jdk/jre/lib:/opt/jdk/lib:/opt/jdk/jre/lib/charsets.jar\nexport JAVA_HOME JAVA_BIN JRE_HOME PATH CLASSPATH' /etc/profile
RUN sed -i '$a\export JAVA_HOME=/opt/jdk/\nexport PATH=$JAVA_HOME/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' ~/.bashrc
ENV JAVA_HOME=/opt/jdk
ENV JAVA_BIN=/opt/jdk/bin
ENV JRE_HOME=/opt/jdk/jre
ENV CLASSPATH=/opt/jdk/jre/lib:/opt/jdk/lib:/opt/jdk/jre/lib/charsets.jar
ENV PATH=/opt/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
WORKDIR /build
#ENTRYPOINT ["/bin/bash", "-c", "source ~/.bashrc; tail -f /dev/null"]
上面需要注意的就是:ENV 环境变量配置一定要加上, 不然后面在外面基于docker执行Java命令会提示找不到,这个问题我是找了很久才发现
执行以下命令生产docker镜像
- docker build -t metaverse -f Dockerfile_arm --network=host --build-arg BUILD_FROM=arm64v8 -t test_jre:V1.0.1 .
-t metaverse 做备份
--network=host 直连网络模式
BUILD_FROM=arm64v8 指定平台编译 这个一定得加上, 不然会出问题
test_jre:V1.0.1:镜像名称
- docker run -it -v /var/run/docker.sock:/var/run/docker.sock -v $PWD/:/opt/local/ test_jre:V1.0.1 java --version
- docker run -d --privileged=true --name test1 -v /var/run/docker.sock:/var/run/docker.sock -v $PWD:/opt/local/ test_jre:V1.0.1 作为守护进程执行
- docker exec test 1 java xxxx.java
更多推荐
已为社区贡献1条内容
所有评论(0)