Dockerfile部署Java项目挂载使用外部配置文件

Dockerfile部署Java项目挂载使用外部配置文件

技术博客 http://idea.coderyj.com/

需求是由于java项目使用的是nacos 而且每次部署nacos服务器ip不一样导致要重新打包,想引入外部配置文件进行打包

1.需求是由于java项目使用的是nacos 而且每次部署nacos服务器ip不一样导致要重新打包,想引入外部配置文件进行打包 解决方案

SpringBoot配置文件的加载路径优先级

在讲解Docker运行Java项目挂载使用外部配置文件之前,需要了解SpringBoot的配置文件加载路径优先级~

优先级(从高到低):

工程根目录:./config/

工程根目录:./
classpath:/config/
classpath:/

2.当Springboot打成JAR包(不包含配置文件),读取外部配置文件application.properties时,可以选择:

  • 1.把application.properties放在在项目名.jar的同级目录下。
  • 2.在项目名.jar同级目录,创建一个config文件夹,把application.properties放进去。

3.项⽬使⽤容器内tmp⽬录下的application.properties配置⽂件

java 复制代码
FROM java:8-alpine
ENTRYPOINT java -jar /tmp/app.jar --spring.config.additional-location=/tmp/application.properties

4.最终配置文件

java 复制代码
FROM openjdk:8
# 将当前目录下的*.jar添加到镜像中去,并且命名为app.jar
ADD ./track-web-exe.jar app.jar
# 开放tcp端口
EXPOSE  8182/tcp
ENV LANG C.UTF-8

# copy 修改启动配置文件 以下2种方法均可以
# COPY ./bootstrap.yml ./config/bootstrap.yml
COPY ./bootstrap.yml ./bootstrap.yml

# 镜像启动的时候执行这个命令
CMD exec java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.jar
相关推荐
人活一口气1 小时前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP3 小时前
Vibe Coding -- 完整项目案例实操
java
荣码3 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing3 小时前
Google第三方授权登录
java·后端·程序员
明月光8183 小时前
从一行 @Builder 说起:重新拾起 Java 的 Lombok、注解与 Builder 模式
java
考虑考虑12 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯13 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
青石路17 小时前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
像我这样帅的人丶你还20 小时前
Java 后端详解(五):Redis 缓存
java·后端·全栈
plainGeekDev1 天前
GreenDAO → Room
android·java·kotlin