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