在docker中更改JAVA_主页
我想要dockerise的遗留web应用程序使用了一些旧类,如在docker中更改JAVA_主页,java,docker,docker-compose,Java,Docker,Docker Compose,我想要dockerise的遗留web应用程序使用了一些旧类,如com/sun/image/codec/jpeg/ImageFormatException,这些类在JavaSE7之前一直受支持。 现在在docker容器中,默认的jdk获取(在安装tomcat-6容器时)是 OpenJdk不支持这些类 我使用updatealternations安装Oracle Jdk7.80 装载完容器后,在给出java-version时,我得到 java version "1.7.0_80" Java(TM) S
com/sun/image/codec/jpeg/ImageFormatException
,这些类在JavaSE7之前一直受支持。
现在在docker容器中,默认的jdk获取(在安装tomcat-6容器时)是
OpenJdk不支持这些类
我使用updatealternations
安装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\u HOME
设置到我安装的Oracle Jdk HOME?您只需使用docker文件中的ENV
命令设置/更改docker映像的环境变量即可:
ENV JAVA_HOME /path/to/java
如果您的基本映像默认包含OpenJDK,并且如果您希望在映像中使用OracleJDK,只需将下面的命令添加到dockerfile并构建映像,您的映像将使用OracleJDK
RUN yum -y remove java***
RUN yum install -y jdk-8u212-linux-x64.rpm && \
echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | tee
-a /etc/profile && source /etc/profile && echo $JAVA_HOME && \
rm jdk-8u212-linux-x64.rpm && \
alternatives --set java /usr/java/jdk1.8.0_212-amd64/jre/bin/java
RUN yum -y remove java***
RUN yum install -y jdk-8u212-linux-x64.rpm && \
echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | tee
-a /etc/profile && source /etc/profile && echo $JAVA_HOME && \
rm jdk-8u212-linux-x64.rpm && \
alternatives --set java /usr/java/jdk1.8.0_212-amd64/jre/bin/java