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
相关推荐
狂团商城小师妹几秒前
JAVA国际版同城打车源码同城服务线下结账系统源码适配PAD支持Android+IOS+H5
android·java·ios·小程序·交友
m0_736927044 分钟前
Java面试场景题及答案总结(2025版持续更新)
java·开发语言·后端·职场和发展
何中应8 分钟前
IDEA实用快捷键
java·ide·intellij-idea
muyouking119 分钟前
Rust + WASM + Svelte 深度实战:内存管理、性能权衡与图像处理进阶
开发语言·rust·wasm
仟濹24 分钟前
「经典数字题」集合 | C/C++
c语言·开发语言·c++
lkbhua莱克瓦2432 分钟前
Java练习——正则表达式2
java·开发语言·笔记·正则表达式·github·学习方法
鬼火儿32 分钟前
MySQL系列之数据类型(String)
java·后端
江湖人称小鱼哥33 分钟前
Jenkins 在构建 Java 项目并操作 Docker 时 CPU 会突然飙高
java·docker·jenkins
Violet_YSWY38 分钟前
Iterable<Result<Item>>讲一下
java
懒羊羊不懒@40 分钟前
JavaSe—List集合系列
java·开发语言·数据结构·人工智能·windows