简单SpringBoot项目

Dockerfile

# 基于哪个镜像进行打包  
FROM openjdk:17-jdk-slim  
  
# 生成的JAR保存的目录  
ARG JAR_FILE=target/XXX-0.0.1-SNAPSHOT.jar
  
#创建需要的目录并设置权限  
RUN mkdir -p /home/lib && chmod -R 755 /home/lib  
RUN mkdir -p /home/dumps && chmod -R 755 /home/dumps  
RUN mkdir -p /home/config && chmod -R 755 /home/config  
RUN mkdir -p /home/log && chmod -R 755 /home/log  
RUN mkdir -p /home/dependencies && chmod -R 755 /home/dependencies  
  
# 复制执行脚本  
COPY entrypoint.sh /home/entrypoint.sh  
RUN chmod +x /home/entrypoint.sh  
  
# 复制依赖包到Docker镜像中  
COPY target/lib/*.jar /home/dependencies/
  
# 复制日志配置文件  
COPY src/main/resources/logback-spring-dockerfile.xml /home/config/logback-spring-dockerfile.xml  
COPY src/main/resources/application-prod.yml /home/config/application.yml  
  
# 复制生成的JAR包到Docker镜像中  
COPY ${JAR_FILE} /home/lib/app.jar  
  
ENV JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/dumps/ -Dloader.path=/home/dependencies -Dfile.encoding=UTF-8 -Duser.timezone=GMT+08"  
ENV SPRING_CONFIG_LOCATION=" --spring.config.location=file:/home/config/application.yml "  
ENV LOG_CONFIG=" --logging.config=file:/home/config/logback-spring-dockerfile.xml "  
  
# 启动容器  
ENTRYPOINT ["/home/entrypoint.sh"]

entrypoint.sh

#!/bin/sh  
exec java ${JAVA_OPTS} -jar /home/lib/app.jar ${SPRING_CONFIG_LOCATION} ${LOG_CONFIG}