我使用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
为什么会发生这种情况?
答案 0 :(得分:0)
好的,我通过添加" -dit"运行命令。这是工作运行命令:
docker run -dit -p 8080:8080 joe-microservice-test
这里another question有助于解释为什么需要它。