核心点:
1、准备文件
2、spring.config.location,使用该参数指定配置文件后,会使项目默认配置文件(application.properties 或 application.yml )失效,Spring Boot 将只加载指定的外部配置文件。
Dockerfile:
# 基础镜像
FROM dockette/openjdk8
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 创建log4日志输出位置
RUN mkdir /log4
RUN mkdir /log4/sysLog
RUN mkdir /log4/errorLog
# 拷贝jar包到容器 取名为app.jar。 注意:copy 宿主机的目录只能是相对路径,不能使用绝对路径
COPY ./demo-java.jar /app.jar
# 拷贝 配置文件
COPY ./application.properties /application.properties
# 入口, 启动命令增加参数 --spring.config.location
ENTRYPOINT ["java", "-jar", "/app.jar","--spring.config.location=/application.properties"]
3、docker挂载。将容器中配置文件挂载出来,在构建容器时挂载。
构建镜像:
docker build -t demo-java:1.0 /root/demo
构建容器:(挂载配置文件:-v /root/demo/application.properties:/application.properties)
docker run \
-d \
--name demo-java \
-p 1993:1993 \
-v /root/demo/demo-java.jar:/app.jar \
-v /root/demo/application.properties:/application.properties \
-v /root/demo/logs/sysLog:/log4/sysLog \
-v /root/demo/logs/errorLog:/log4/errorLog \
demo-java:1.0
4、容器运行后,若需修改配置文件,只需修改宿主机的application.properties ,重启demo-java 容器即可。