一、部署集群环境时配置文件不相同问题
java项目jar包或docker容器启动项目都会用到properties或yml配置文件,不同的环境会用不同的配置文件,常见的有dev(开发)、test(测试)、prod(生产)三种环境,一般会用到spring.profiles.active参数来切换配置文件适应不同的环境。但部署集群环境时问题就来了,在生产环境中配置文件都用的prod,但各集群的配置参数有时是不一样的,此时就需要借助环境变量参数来解决这个问题。
二、jar包脚本设置环境变量参数
语法:java -jar -Xxx -Dxx xx.jar
#样例1:
nohup java -jar -Xms256m -Xmx2048m -Dspring.profiles.active=dev -DMYSQL_HOST=192.168.1.100 admin.jar > /dev/null 2>&1 &
#样例2:
nohup java -Dspring.profiles.active=dev -DMYSQL_HOST=192.168.1.100 -jar -Xms256m -Xmx2048m admin.jar > info.log 2>&1 &
#错误样例:D变量参数要放到 admin.jar 的前面
nohup java -jar -Xms256m -Xmx2048m admin.jar Dspring.profiles.active=dev -DMYSQL_HOST=192.168.1.100 > info.log 2>&1 &
三、docker设置环境变量参数
#docker中设置环境变量是要用下换线作为分隔符
docker run --name myname -d -e spring_profiles_active=dev -e MYSQL_HOST=192.168.1.100 --restart=always admin:1.0