springboot怎么设置docker(Docker如何给Springboot项目动态传参的实现方法)
类别:服务器 浏览量:1748
时间:2022-03-28 01:27:51 springboot怎么设置docker
Docker如何给Springboot项目动态传参的实现方法背景
最近有些初学Docker的朋友问到,想通过docker-compose.yml
来动态给微服务传参,而不是每次都要在项目配置文件硬编码,然后构建服务镜像,最后打包发布经过一些列流程才能更新配置,那能不能直接通过docker-compose.yml
里把一些配置项放到环境变量,然后springboot项目自动从环境变量获取参数呢?
场景
假设现在有一个Springboot项目,它里面有一个数据库的配置项,但是不同的数据库测试环境(DEV\SIT\UAT),数据库ip有多个,想使用同一个Springboot项目镜像,可以随时切换数据库配置,简单来说就是你的Springboot应用的数据库配置应该是通过外部传入,而不是hardcode.
Springboot应用里有个数据库配置如下:
spring.datasource.url = jdbc:mysql://192.168.0.11:3306/db?useUnicode=true&characterEncoding=utf8 #配置数据库用户名 spring.datasource.username = sa #配置数据库密码 spring.datasource.password = sa
解决方案
利用SpEL
表达式,动态从环境变量获取数据库配置
接下来我们在Springboot配置文件把数据库配置用spEL表达式替换
#配置数据库链接 spring.datasource.url = jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME}?useUnicode=true&characterEncoding=utf8 #配置数据库用户名 spring.datasource.username = ${DB_USER} #配置数据库密码 spring.datasource.password = ${DB_PASSWORD}
在docker-compose.yml
配置我们的数据库参数
version: '3' services: web: restart: always depends_on: - db image: springboot-app-image build: . ports: - 8080:8080 environment: - DB_HOST=192.168.0.11 - DB_PORT=3306 - DB_USER=root - DB_PASSWORD=123456 - DB_NAME=db networks: - credit-facility-net deploy: mode: replicated replicas: 3 restart_policy: condition: on-failure delay: 5s max_attempts: 3 update_config: parallelism: 1 delay: 10s
这样我们的Springboot应用就可以在启动容器服务的时候动态获取数据库配置了
到此这篇关于Docker如何给Springboot项目动态传参的实现方法的文章就介绍到这了,更多相关Docker Springboot动态传参内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- docker安装java8(docker安装java环境的实现步骤)
- docker怎么解决隔离性问题(docker启动ES内存溢出的解决方案)
- docker10个小技巧(docker比赛提交常用命令小结)
- ubuntu下使用vscode(使用Vscode结合docker进行开发的详细过程)
- docker如何访问nginx(基于docker启动nginxssl配置)
- docker怎么装mongodb(Docker 搭建集群MongoDB的实现步骤)
- docker部署spring boot(Spring Boot 打包上传Docker 仓库的详细步骤)
- docker配置说明(Docker安装Kong API Gateway并使用的详细教程)
- dubbo和项目搭建(使用docker部署dubbo项目的方法步骤)
- docker进入容器的方法(docker容器里面的root权限获取方法)
- centosdocker镜像安装mysql(linux下利用Docker安装mysql的步骤)
- docker启动失败容器目录结构(docker容器中安装vim问题解决)
- docker虚拟化容器使用教程(Docker安装ClickHouse并初始化数据测试)
- 远程给docker容器执行命令(Docker命令让普通用户能够执行的实现)
- docker镜像无法删除 Error:No such image:xxxxxx解决(docker镜像无法删除 Error:No such image:xxxxxx解决)
- docker部署redis集群查看版本(docker下的 redis 之持久化存储详解)
- 春天养佛肚竹,做好这几件事,叶绿根壮寓意好 越养越旺家(春天养佛肚竹做好这几件事)
- 律界衣品最好,时尚圈学识数高,41岁的Amal堪称现实版的傲骨贤妻(时尚圈学识数高)
- 刘智泰确认出演《Good Wife》 担纲男一号(刘智泰确认出演Good)
- 《傲骨之战》剧终 律政女魔头Diane,为什么是大女主天花板(傲骨之战剧终律政女魔头Diane)
- 汉族(汉族的祖先是谁)
- 中国有几个名族(中国有几个民族没列入56个民族)
热门推荐
- dedecmsv5.7后台路径查找(dedecms 取消服务器/主机空间目录脚本的执行权限方法[图文])
- css3特性动画图(CSS3轻松实现清新 Loading 效果的简单实例)
- vue项目有element插件(Vue Element前端应用开发之前端API接口的封装)
- python程序锁教程(在python里协程使用同步锁Lock的实例)
- mysql8.0安装及配置(MySQL 8.0 之不可见列的基本操作)
- python获取特定时间日期的数据(Python提取特定时间段内数据的方法实例)
- 腾讯云换php版本(腾讯云服务器配置php环境的方法)
- react动态添加组件属性(react使用antd的上传组件实现文件表单一起提交功能完整代码)
- docker搭建mysql服务(Docker部署Mysql集群的实现)
- 利用数据库安装centos7(CentOS安装SQL Server vNext CTP1教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9