2017-12-18 3 views
0

HTTPサーバー用にnanohttpdを使用してJavaで単純なマイクロサービスを作成しました。私はこのようなWindowsの10コマンドプロンプトから直接jarファイルから実行することができる午前:Dockerコンテナで実行するとすぐにNanohttpdが終了する

D:\Docker\JoeMicroserviceTest\src>java -jar JoeMicroserviceTest-1.0-SNAPSHOT.jar 

サーバは罰金やディスプレイを開始:

Serverを起動、停止するにはEnterキーを押します。

私はサーバーに対してHTTP要求を行うことができ、すべてがうまくいきます。

私はそれをDockerイメージに入れ、それを実行するとコンテナが起動し、nanohttpdサーバーが起動し、すぐに停止します。これは私が見るものです:

サーバーが起動したら、Enterキーを押して停止します。

サーバーが停止しました。

開始と停止の間にかなりの遅延はありません。そして、サーバープロセスが停止したので、もちろん、私のコンテナは終了します。ここで

は私dockerfileです:

FROM openjdk:8 
COPY ./src/ /usr/src/JoeMicroserviceTest 
WORKDIR /usr/src/JoeMicroserviceTest 
CMD ["java","-jar","JoeMicroserviceTest-1.0-SNAPSHOT.jar"] 
EXPOSE 8080 

私はこのようにそれを構築する:

docker build -t joe-microservice-test . 

私はこのようにそれを実行します。

docker run -p 8080:8080 joe-microservice-test 

は、なぜこれが起こっされるだろうか?

+0

バックグラウンドで実行する '-d'(' Detached') – BMW

+0

@BMW、私はそれを試しました。長い文字列を出力した後、コマンドプロンプトに戻ります。私が "docker ps"を実行すると、コンテナの一覧が表示されず、サーバーに対してHTTPリクエストを行うことができないため、実行されていないようです。 – JoeMjr2

答えて

0

[OK]を実行するには、「-dit」を追加してください。

docker run -dit -p 8080:8080 joe-microservice-test 

ここだanother questionそれが必要だ理由を説明することができます:ここで働いてrunコマンドです。

関連する問題