gpt4 book ai didi

java - Nanohttpd 在 Docker 容器中运行时立即退出

转载 作者:行者123 更新时间:2023-11-30 06:22:20 25 4
gpt4 key购买 nike

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

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

服务器正常启动并显示:

Server started, Hit Enter to stop.

然后我可以向服务器发出 HTTP 请求,一切都运行良好。

然后我将其放入 Docker 镜像中,当我运行它时,容器启动,nanohttpd 服务器启动,然后立即停止。这是我看到的:

Server started, Hit Enter to stop.

Server stopped.

启动和停止之间几乎没有延迟。当然,我的容器会退出,因为服务器进程停止了。

这是我的 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

为什么会发生这种情况?

最佳答案

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

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

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

关于java - Nanohttpd 在 Docker 容器中运行时立即退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47861060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com