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
相关推荐
言慢行善几秒前
idea出现的问题
java·ide·intellij-idea
杨荧10 分钟前
【JAVA毕业设计】基于Vue和SpringBoot的宠物咖啡馆平台
java·开发语言·jvm·vue.js·spring boot·spring cloud·开源
monkey_meng23 分钟前
【Rust中的项目管理】
开发语言·rust·源代码管理
喜欢打篮球的普通人25 分钟前
rust高级特征
开发语言·后端·rust
Ling_suu41 分钟前
Spring——单元测试
java·spring·单元测试
ModelBulider43 分钟前
十三、注解配置SpringMVC
java·开发语言·数据库·sql·mysql
V搜xhliang02461 小时前
基于深度学习的地物类型的提取
开发语言·人工智能·python·深度学习·神经网络·学习·conda
DK七七1 小时前
多端校园圈子论坛小程序,多个学校同时代理,校园小程序分展示后台管理源码
开发语言·前端·微信小程序·小程序·php
苹果酱05671 小时前
C语言 char 字符串 - C语言零基础入门教程
java·开发语言·spring boot·mysql·中间件
csucoderlee1 小时前
eclipse mat leak suspects report和 component report的区别
java·ide·eclipse