我想要停靠的遗留web应用程序使用了一些旧的类,比如com/sun/image/codec/jpeg/ImageFormatException,这些类在Java SE7之前就得到了支持。现在,在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主目录?
发布于 2017-09-18 19:14:17
您可以通过在docker文件中使用ENV命令来简单地设置/更改docker镜像的环境变量:
ENV JAVA_HOME /path/to/java发布于 2019-05-08 15:30:37
如果您的基本映像默认情况下包含OpenJDK,并且如果您希望在映像中使用OracleJDK,只需将以下命令添加到您的dockerfile并构建映像,然后启动您的映像,您的映像将拥有oracle JDK。
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/javahttps://stackoverflow.com/questions/46277631
复制相似问题