docker中的spring引导应用程序立即终止
问题描述:
简单的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
在容器日志,唯一的输出是春天的旗帜,然后将容器终止。
我在这里错过了什么。
答
我没有找到任何理由使用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
后'泊坞窗events' – user2915097
可以提供完整的日志'搬运工容器日志'? – yamenk
使用'docker run -it -p 8080:8080 --name app app',这样你就可以明白它为何会死亡。 '-d'发送给后台 –