初めてDockerを試していて、Dockerコンテナの中で実行するSpring Boot Webアプリケーションを取得しようとしています。私はアプリケーションをビルドしています(自己完結型のjarファイルにパッケージ化されています)。そしてこれをDockerイメージに追加しています。DockerがOpenJDKを見つけられない
ここではOpenJDK Docker base imageの指示に従っています。 Bootup repo on GitHubに私のSSCCEがあります。READMEには、私が見ているものを再現するためのすべての指示があります。しかし、基本的には:
- 私は瓶の中にエラーを私に以下のエラーを与え、その後、
を終了
docker run -it --rm --name bootup bootup
成功docker build -t bootup .
Webアプリケーションを構築する: を/bin/sh: 1: /bin/sh: [java,: not found
Google Godsによれば、このはをOracle JDKイメージの問題に使用しましたが、ではなく、OpenBDKイメージではとなります。
(そのGitHubのレポでアップもある)私のDockerfileを見て、私は誰のスポットをゆがんつもりできる場所:
FROM openjdk:8
RUN mkdir /opt/bootup
ADD build/libs/bootup.jar /opt/bootup
WORKDIR /opt/bootup
ENTRYPOINT ['java', '-jar', 'bootup.jar']
CMD ['']
感謝を事前に!
更新:docker ps
の
出力:
CONTAINER ID IMAGE COMMAND CREATED
16bde964ff6b bootup "/bin/sh -c 'java -ja" 2 days ago
STATUS PORTS NAMES
Up 14 seconds 0.0.0.0:8080->8080/tcp bootup
ありがとう@DpperfileH(+1) - あなたのDockerファイルの変更により、私はその方法の約90%を得ました!さて、 'docker run -it --rm --name bootup bootup'を実行すると、Dockerコンテナ*が起動して実行されます(' docker ps'を実行して見ることができます)。** 3(3 )**望ましくないことが起こっている。(1) 'docker run -it --rm --name bootup bootup'を実行しているターミナルウィンドウはすべてのSTDOUTロギングを出力していますが、私のアプリケーションは'/var/log/bootup /ブートアップ* .log'。 ** STDOUTがホストの端末に移動しないようにしたいのですが... ** – smeeb
(2)同じ行にある 'docker run -it --rm --name bootup bootup'コマンドは決して戻りませんコマンドライン/ターミナル/プロンプトへの制御。アプリケーションがDockerではなくホストマシン上で実行されているかのようになります。 **実行するコマンドラインを返す方法** – smeeb
(3)**最も重要なのは**、私は '' docker run ''を実行するときに何らかのポート転送(または何か)をする必要があると思う。 '--rm --name bootup bootup'を実行し、ブラウザに' http:// localhost:9200'を指定してください。何も表示されません。 **修正案は何ですか?**ありがとうございました! – smeeb