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动态传参内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- web开发如何正确使用docker(Docker部署web项目的实现)
- dockervolume迁移工具(Docker中数据卷volume管理的两种方式)
- docker搭建私有dns域名解析(docker内网搭建dns使用域名访问替代ip:port的操作)
- 如何打开docker容器端口号(Docker容器网络端口配置过程详解)
- docker插件容器使用(Docker容器开jupyter不能访问到的解决方法)
- navicat连接mysql1045解决方法(Navicat 连接服务器端中的docker数据库的方法)
- 使用docker在linux环境中部署springboot包的教程(使用docker在linux环境中部署springboot包的教程)
- 利用docker容器化开发环境(使用docker搭建sonarqube的方法)
- centos上docker的部署(CentOS8下的Docker使用详解)
- 查看docker容器进程运行状态命令(docker容器内要启动两个进程时Dockerfile的实现代码)
- docker无法访问宿主机ip(解决Mac下 docker 无法 ping 通宿主机的问题)
- 安全进入docker容器的方法(使用docker部署一个简单的c/c++程序的方法)
- docker 镜像导入导出(Docker镜像的导入导出代码实例)
- springboot项目部署到docker(IDEA 通过docker插件发布springboot项目的详细教程)
- docker挂载的注意事项(解决docker日志挂载的问题)
- docker搭建方法(超简单实现Docker搭建个人博文系统)
- 经常发这三种 朋友圈 的人,要迅速屏蔽(经常发这三种朋友圈)
- 有种尴尬叫朋友圈忘屏蔽,大学生上演社死现场,父母亲自下场吐槽(有种尴尬叫朋友圈忘屏蔽)
- 朋友圈屏蔽你的人,可以直接看淡了(朋友圈屏蔽你的人)
- 金球奖只青睐那些会戴珠宝的女人(金球奖只青睐那些会戴珠宝的女人)
- 浙江省一个县,人口超40万,建县历史超1100年(浙江省一个县人口超40万)
- 五代十国南唐历代国君(五代十国南唐历代国君)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9