2017-08-26 71 views
0

簡單的spring引導應用程序試圖在docker中運行,但是在docker運行後,立即退出。這裏是我的Dockerfiledocker中的spring引導應用程序立即終止

FROM anapsix/alpine-java:latest 
VOLUME /tmp 

RUN mkdir -p /opt/app 
ADD app.jar /opt/app/app.jar 
EXPOSE 8080 

ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/opt/app/app.jar"] 

泊塢窗運行命令

docker run -t -p 8080:8080 --name app -d app 

在容器日誌,唯一的輸出是春天的旗幟,然後將容器終止。

我在這裏錯過了什麼。

+0

後'泊塢窗events' – user2915097

+0

可以提供完整的日誌'搬運工容器日誌<容器名稱>'? – yamenk

+0

使用'docker run -it -p 8080:8080 --name app app',這樣你就可以明白它爲何會死亡。 '-d'發送給後臺 –

回答

0

我沒有找到任何理由使用anapsix/alpine-java:latest

我建議您使用大小的openjdk:8-jre-alpine,重量輕,少comparitively。

創建war文件而不是jar。

使用以下

Dockerfile

FROM openjdk:8-jre-alpine 

ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \ 
    SLEEP_TIME=0 \ 
    JAVA_OPTS="" 

# add directly the war 
ADD *.war /app.war 

EXPOSE 8080 
CMD echo "The application will start in ${SLEEP_TIME}s..." && \ 
    sleep ${SLEEP_TIME} && \ 
    java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.war 
+0

謝謝大家的回覆。 Dockerfile沒有問題,顯然我的jar文件有問題。 – Siras