尝试在docker中运行的简单spring启动应用程序,但是在docker运行后立即退出。这是我的Dockerfile
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运行命令
docker run -t -p 8080:8080 --name app -d app
在容器日志中,唯一的输出是spring横幅,然后容器终止。
我在这里遗漏了什么。
答案 0 :(得分:0)
我没有找到任何理由使用anapsix/alpine-java:latest
我建议你使用openjdk:8-jre-alpine
,重量轻,尺寸要小一些。
创建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