2017-07-17 10 views
2

私はopenjdkではなくOracle Javaでアルパインベースのドッカー画像を作成しようとしています。私はここに独自のイメージを作成するように特別に求められてきました。Docker alpine + oracle java:javaを見つけることができません

これは私が作ってみたDockerfileです:そこデバッグを支援するために追加された(JAVA_HOMEのディレクトリをエコーのような)いくつかの不要なコマンドがありますが、今私がこだわっている

FROM alpine:3.6 

RUN apk add --no-cache curl wget 

RUN mkdir /opt/ && \ 
    wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie"\ 
    http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz && \ 
    tar xvf jdk-8u131-linux-x64.tar.gz -C /opt/ && \ 
    rm jdk-8u131-linux-x64.tar.gz && \ 
    ln -s /opt/jdk1.8.0_131 /opt/jdk 

ENV JAVA_HOME /opt/jdk 
ENV PATH $PATH:/opt/jdk/bin 

RUN echo $JAVA_HOME && \ 
    echo $PATH 

RUN which java 
RUN java -version 

RUN which java期待どおり/opt/jdk/bin/javaが返されますが、RUN java -version/bin/sh: java: not foundを返します。

実行ファイルを/ usr/binにシンボリックリンクするなど、いくつか試してみましたが、無駄です。

私には何が欠けていますか?

EDIT:ドッキングウィンドウから 最終的な出力は次のようになります。 The command '/bin/sh -c java -version' returned a non-zero code: 127

最終編集:libcの対MUSLに私を置くためdiginoiseする

感謝。

で発見
RUN apk --no-cache add ca-certificates && \ 
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/sgerrand.rsa.pub && \ 
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-2.25-r0.apk && \ 
apk add glibc-2.25-r0.apk 

https://github.com/sgerrand/alpine-pkg-glibc

+1

あなたはエコー$ JAVA_HOMEと$ PATHから何を得るのですか? – Edwin

+0

JAVA_HOME: '/ opt/jdk' パス:'/usr/local/sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ bin:/ opt/jdk/bin' – phanteh

+0

'RUN echo" $(java -version) "'を試すことができますか? – Edwin

答えて

3

あなたはあなたが望むものを達成することはできません私は私のDockerfileは私が働いてイメージを構築することができに以下を追加しました。

Alpine LinuxはMUSLを標準Cライブラリとして使用します。

LinuxのJavaは、GNU標準Cライブラリ(gclib)に依存しています。

理論的な方法はありますが、あなたが思うほど些細なことではありません。

が短い使用の公式のOracleのJavaドッカーイメージでthis link

Here is a bit more detailed info and official stance from Oracle on the topic

を参照してください

+1

..彼が見ている終了コードは、前述の依存関係を逃しているクラッシュするJavaプロセスから来ているので、 – Marged

+0

私はおかげで別の戦略を策定します... – phanteh