在Docker容器中运行时,Nanohttpd会立即退出

问题描述 投票:0回答:1

我使用nanohttpd为HTTP服务器编写了一个简单的Java微服务。我可以直接从Windows 10命令提示符从jar文件运行它,如下所示:

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

服务器启动正常并显示:

服务器启动,按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

为什么会发生这种情况?

java docker nanohttpd
1个回答
0
投票

好的,我通过在运行命令中添加“-dit”来实现此功能。这是工作运行命令:

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

这是another question,有助于解释为什么需要它。

© www.soinside.com 2019 - 2024. All rights reserved.