Dockerfile模版
简单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}
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果