Springboot使用docker-compose实现动态配置过程

目录
  • 使用docker-compose实现动态配置
  • 例如
  • 如图所示
  • 总结

使用docker-compose实现动态配置

Springboot应用在打包的时候我们希望可以在项目启动的时候可以修改application.property或者yml中的配置;而不是在打包docker镜像的时候这个值确定后面不可以修改,这个时候可以通过yml提供的环境变量的功能来实现这个需求;

在yml文件中,通过${Envirment_variable}的方式可以获取系统环境变量中的值;于是可以通过把环境变量配置在docker-compose文件中,这样在docker镜像启动的时候,通过docker-compose中指定的变量,来定义应用中的配置;

例如

我的应用中集成cas单点登录,但是这个单点登录的服务器地址不确定

于是在配置文件中可以这么写

这里cas.server.url中的值从系统的环境变量CAS_SERVER中获取,如果系统中环境变量没有获取到,那么使用地址https://sophon15:8393的地址;

在docker-compose中的配置

这样就可以了;

顺带说一下docker-compose 中如何配置系统的host;这里的sophon15就是host地址

在docker-compose的extra_hosts属性中配置就可以了

如图所示

总结

yml总可以通过${Envirment_variable}的方式读取系统环境变量中的值;然后通过在docker-compose文件中配置好对应的环境变量值,这样应用在读取的时候就直接读到配置的值;而不用系统在打包的时候就得确定某些配置的值;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Docker如何给Springboot项目动态传参的实现方法

    背景 最近有些初学Docker的朋友问到,想通过docker-compose.yml来动态给微服务传参,而不是每次都要在项目配置文件硬编码,然后构建服务镜像,最后打包发布经过一些列流程才能更新配置,那能不能直接通过docker-compose.yml里把一些配置项放到环境变量,然后springboot项目自动从环境变量获取参数呢? 场景 假设现在有一个Springboot项目,它里面有一个数据库的配置项,但是不同的数据库测试环境(DEV\SIT\UAT),数据库ip有多个,想使用同一个Sprin

  • docker-compose镜像发布springboot项目的流程分析

    简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排.Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project).Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理.因此,只要所操作的平台支持Docker API,就可以在其上利用Compose来进行编排管理. Docker-Compose将所管理的

  • docker Compose部署springboot+vue前端端分离

    目录 (一) 准备工作 一.安装 二.修改生产环境下的配置以及打包操作: (二) 开始部署 一.blog_api 制作镜像 二.dockerCompose编排 三.mysql.redis.nginx的配置: 四.导入数据[数据库表的数据.前端静态web资源] 五.测试并排除错误: 温馨提示:如果有自己的服务器最好不过了,这样部署网项目就可以上线了.没有的话,只能使用localhost 本机访问啦,记得替换 ngixn 中的ip地址.域名为localhost. (一) 准备工作 一.安装 1.安装

  • Springboot自带定时任务实现动态配置Cron参数方式

    目录 Springboot自带定时任务实现动态配置Cron参数 SpringBoot定时任务的四种实现方式(主要) spring动态配置cron表达式,不需要停服 SchedulingConfigurer接口实现动态加载cron表达式 Springboot自带定时任务实现动态配置Cron参数 同学们,我今天分享一下SpringBoot动态配置Cron参数.场景是这样子的:后台管理界面对定时任务进行管理,可动态修改执行时间,然后保存入库,每次任务执行前从库里查询时间,以达到动态修改Cron参数的效

  • Springboot使用docker-compose实现动态配置过程

    目录 使用docker-compose实现动态配置 例如 如图所示 总结 使用docker-compose实现动态配置 Springboot应用在打包的时候我们希望可以在项目启动的时候可以修改application.property或者yml中的配置:而不是在打包docker镜像的时候这个值确定后面不可以修改,这个时候可以通过yml提供的环境变量的功能来实现这个需求: 在yml文件中,通过${Envirment_variable}的方式可以获取系统环境变量中的值:于是可以通过把环境变量配置在do

  • springboot 中 druid+jpa+MYSQL数据库配置过程

    Druid来自于阿里的一个开源连接池能够提供强大的监控和扩展功能,Spring Boot默认不支持Druid和jpa,需要引入依赖. 1.引入依赖包 <!--druid--> <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</art

  • Springboot 整合 RocketMQ 收发消息的配置过程

    Springboot 整合 RocketMQ 收发消息 创建springboot项目 pom.xml添加rocketmq-spring-boot-starter依赖. <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.1.0</version>

  • Docker容器网络端口配置过程详解

    暴露网络端口 实际上,Docker中涉及暴露网络端口的参数有两个,分别是-p和-P.下面分别来介绍. -P 使用-P,Docker会在宿主机上随机为应用分配一个未被使用的端口,并将其映射到容器开放的端口,以Nginx 为例,如下: 可以看到,Docker为应用分配了一个随机端口32768,使用该端口即可访问容器中的 nginx(http://lcalhost:32768). -p -p参数则有几种不同的用法: hostPort:containerPort 这种用法是将宿主机端口和容器端口绑定起来

  • docker compose 一键部署分布式配置中心Apollo的过程详解

    简介 说起分布式肯定要想到分布式配置中心.分布式日志.分布式链路追踪等 在分布式部署中业务往往有很多配置比如: 应用程序在启动和运行时需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数.启动参数等,都需要去维护和配置,但不可能一台台服务器登录上去配置 今天我要跟大家分享一下分布式配置中心Apollo: Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等

  • 使用 Docker Compose 构建复杂的多容器 App的方法

    目录 1 为什么需要 Docker Compose 2 什么是 Docker Compose 3 Docker Compose 的使用 3.1 启动容器 3.2 停止并删除容器 1 为什么需要 Docker Compose 在构建容器过程中,一般需要重复运行一些命令, 如 docker build ,docker run 等等,这些命令有时冗长而复杂,逐个重复运行这些命令十分繁琐,对于多容器的复杂应用尤其如此.使用 Docker Compose 工具能极大地简化容器的创建.管理和维护. 2 什么

  • 基于spring-boot和docker-java实现对docker容器的动态管理和监控功能[附完整源码下载]

    docker简介 Docker 是一个开源的应用容器引擎,和传统的虚拟机技术相比,Docker 容器性能开销极低,因此也广受开发者喜爱.随着基于docker的开发者越来越多,docker的镜像也原来越丰富,未来各种企业级的完整解决方案都可以直接通过下载镜像拿来即用.因此docker变得越来越重要. 本文目的 本文通过一个项目实例来介绍如果通过docker对外接口来实现对docker容器的管理和监控. 应用场景: 对服务器资源池通过docker进行统一管理,按需分配资源和创建容器,达到资源最大化利

  • Docker compose部署SpringBoot项目连接MySQL及遇到的坑

    前面使用docker简单部署了下SpringBoot项目并介绍了什么是Dockerfile,如果是镜像比较多的情况下如何一键交付呢?Docker-compose!,理解了Docker-compose后面学习K8s就会好理解一些 一.安装docker-compose 环境Centos7 //下载docker-compose curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.3/docker-compose-

  • SpringBoot 整合 Docker的详细过程

    目录 1. Demo Project 1.1 接口准备 1.2 配置准备 2. Docker 开启远程连接 1.1 修改配置文件 1.2 刷新配置.重启 1.3 认证登录 3. IDEA 安装 Docker 插件 4. Maven 添加 Docker 插件 5. 编写Dockerfile 6. 打包项目 7. 创建容器 8. 校验部署 最近备忘录新加的东西倒是挺多的,但到了新环境水土不服没动力去整理笔记 1. Demo Project 首先准备一个简单的项目,用来部署到 Docker 主机上,并

随机推荐