web-dev-qa-db-ja.com

dockerでJava_HOMEを変更する

ドッキングしたいレガシーWebアプリケーションは、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ホームに設定するにはどうすればよいですか?

9
Shoreki

DockerfileでENVコマンドを使用して、Dockerイメージの環境変数を簡単に設定/変更できます。

ENV Java_HOME /path/to/Java
14
dpr

ベースイメージにデフォルトで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
2