Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在docker中更改JAVA_主页_Java_Docker_Docker Compose - Fatal编程技术网

在docker中更改JAVA_主页

在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

我想要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) 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