在docker中更改JAVA_HOME

时间:2017-09-18 10:58:15

标签: java docker docker-compose

我想要dockerise的遗留Web应用程序使用了一些旧的类,如{SE},直到Java SE7才支持com/sun/image/codec/jpeg/ImageFormatException。 现在在docker容器中默认的jdk获取(在安装tomcat-6容器时)是

java version "1.7.0_131"
OpenJDK Runtime Environment (IcedTea 2.6.9) (7u131-2.6.9-2~deb8u1)

OpenJdk不支持这些类

我使用update-alternatives安装Oracle Jdk7.80

加载容器后,在提供java -version时,我正在

java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

但是,进入容器后echo $JAVA_HOME/docker-java-home/jre再次指向OpenJdk。如何将JAVA_HOME设置为我安装的Oracle Jdk主页?

2 个答案:

答案 0 :(得分:13)

您可以使用Dockerfile中的ENV命令设置/更改docker镜像的环境变量:

ENV JAVA_HOME /path/to/java

答案 1 :(得分:2)

如果您的基础映像默认包含OpenJDK,并且如果您想在映像中使用OracleJDK,则将以下命令添加到dockerfile中

RUN yum -y remove java***
RUN echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | tee -a /etc/profile && source /etc/profile && echo $JAVA_HOME