JAVA yaml或properties配置文件中使用环境变量(docker部署)

当我们部署服务时候,希望yaml、properties中的一些配置参数(如数据库、端口号等)从外界获取而非写死。这样做的好处是,当你想部署在别的机器上就不需要再修改或者帮甲方上线的时候只需要修改环境变量就可以了。

Linux下添加环境变量很简单,无非是修改一些文件。

  1. 修改profile文件,输入vi/etc/profile 再结尾输入想添加的变量,如:export HOST=127.0.0.1
  2. 修改.bashrc文件,输入vi/root/.bashrc (profile与bashrc具体两者有什么区别可以查看看)
  3. 修改完后记得 输入source /root/.bashrc 立即生效

由于项目是由docker进行部署的,说说docker中如何添加环境变量

  • 在docker中,也能像Linux一样,进入容器中修改文件达到添加环境变量的效果。但是这样做有个弊端:如果项目频繁迭代,每一次部署都时候容器都被重新创建,被重新创建一次就需要再配置一遍,明显非常的费力,个人不推荐这种方法。
  • 接下来介绍三种添加docker环境变量的方法:
    1. 在Dockerfile文件中添加  ENV DB_HOST=127.0.0.1 DB_USER=root DB_PASSWORD=123456
    2. 在容器启动时添加(即docker run) docker run --name JAVATEST -d -p 8080:8080 --network host --env DB_HOST=127.0.0.1 --env DB_USER=root --env DB_PASSWORD=123456 镜像名
    3. 写在env.list文件中 docker run --name JAVATEST -d -p 8080:8080 --network host --env-file env.list 镜像名

env.list文件
SERVER_PORT=8080
DB_HOST=127.0.0.1
DB_USER=root
DB_PASSWORD=123456

yaml配置文件
url: jdbc:mysql://${DB_HOST:localhost}:3306/Test?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf-8
    username: ${DB_USER}
    password: ${DB_PASSWORD}

${DB_HOST:localhost}表示为去DB_HOST的环境变量值,如果取不到则默认为localhost

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值