0
我使用nanohttpd为HTTP服务器编写了一个Java中的简单微服务。我能够从jar文件直接从Windows 10命令提示符下这样运行:Nanohttpd在Docker容器中运行时立即退出
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
为什么会这样发生?
加'-d'在后台运行('Detached') – BMW
@宝马,我刚试过。它输出一长串字符然后返回到命令提示符。如果我运行“docker ps”,它不会列出任何容器,并且我不能对服务器发出任何HTTP请求,所以它似乎没有运行。 – JoeMjr2