Sho*_*eki 9 java docker docker-compose
我想要dockerise的遗留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)
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
但是,echo $JAVA_HOME进入容器后再给/docker-java-home/jre它指向OpenJdk.如何设置JAVA_HOME我安装的Oracle Jdk主页?
dpr*_*dpr 14
您可以使用ENVDockerfile中的命令简单地设置/更改docker 镜像的环境变量:
ENV JAVA_HOME /path/to/java
Run Code Online (Sandbox Code Playgroud)
如果您的基础镜像默认包含 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/java
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12165 次 |
| 最近记录: |