2017-11-03 10 views
0

javaがインストールされたコンテナが必要です。ポート8090が公開されます。誰でも私のドッカーファイルの問題点を教えていただけますか?

これを達成するために書いたDockerファイルは次のとおりです。私は成功したイメージを構築することができたと私はhub.docker.com

に自分のアカウントにプッシュしているが、私は実行すると、以下のコマンドを使用してコンテナを実行しようDockerfileを使用し

FROM ubuntu:16.04 
ENV DEBIAN_FRONTEND noninteractive 

ENV VERSION 8 
ENV UPDATE 152 
ENV BUILD 16 
ENV SIG aa0333dd3019491ca4f6ddbe78cdb6d0 

ENV JAVA_HOME /usr/lib/jvm/java-${VERSION}-oracle 

# install jre 
RUN apt-get update -qq && \ 
    apt-get upgrade -qqy --no-install-recommends && \ 
    apt-get install curl unzip bzip2 -qqy && \ 
    mkdir -p "${JAVA_HOME}" && \ 
     curl --silent --location --insecure --junk-session-cookies --retry 3 \ 
      --header "Cookie: oraclelicense=accept-securebackup-cookie;" \ 
      http://download.oracle.com/otn-pub/java/jdk/"${VERSION}"u"${UPDATE}"-b"${BUILD}"/"${SIG}"/jre-"${VERSION}"u"${UPDATE}"-linux-x64.tar.gz \ 
     | tar -xzC "${JAVA_HOME}" --strip-components=1 && \ 
    apt-get remove --purge --auto-remove -y curl unzip bzip2 && \ 
    apt-get autoclean && apt-get --purge -y autoremove && \ 
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 

RUN update-alternatives --install "/usr/bin/java" "java" "${JAVA_HOME}/bin/java" 1 && \ 
     update-alternatives --install "/usr/bin/javaws" "javaws" "${JAVA_HOME}/bin/javaws" 1 && \ 
     update-alternatives --set java "${JAVA_HOME}/bin/java" && \ 
     update-alternatives --set javaws "${JAVA_HOME}/bin/javaws" 

EXPOSE 8090 

コンテナが実行されていませんでした。

私は2時間以上根本原因を分析して私の頭を壊しましたが、私は問題を見つけることができませんでした。

私は何か愚かな行方不明を知っている誰も見て、私がやっている間違いを指摘することができますか?事前

+1

あなたは、コンテナを実行するために使用しているコマンドを投稿することができますか? –

+1

また、取得している正確なエラーメッセージを投稿してください。 – Henry

+1

Javaが必要な場合は、なぜ自分のイメージを作成していますか?あらかじめ構築された画像を使用してみませんか?例:https://hub.docker.com/r/isuper/java-oracle/tags/自分で作成する理由がある場合は、[そのドッカーファイル](https://hub.docker.com/ – k0pernikus

答えて

2

あなたDockerfileがENTRYPOINTまたはCMD命令が欠落しています。コンテナを起動するときに実行されるコマンドを定義します。

Reference CMD

Reference ENTRYPOINT

+0

速い応答のsamprogのおかげで、私は ENTRYPOINT ["/ bin/bash"]を追加し、同じ問題を再度作りました。それ以外に何が問題なのでしょうか? –

+2

ENTRYPOINTまたはCMD命令で開始したプロセスが存在する限り、コンテナは実行されます。プロセスが停止すると、コンテナは停止します。/bin/bashは実際には連続して動作しているデーモンやプロセスではありません。ポート8090でどんなサービスに到達したいですか?上記のサービスを開始するコマンドにENTRYPOINTまたはCMDを変更することをお勧めします。 – samprog

関連する問題