Docker+Spring boot为环境变量赋值(普通变量和List变量)

Docker+Spring boot为环境变量赋值(普通变量和List变量)

  • Spring boot开发微服务,使用yml做配置文件,Docker方式部署。

  • 在不同环境中,需要对yml中的配置进行调整,本文主要介绍在以docker run方式运行时,如何为yml配置文件中的变量赋值。分为普通的环境变量、List变量。

  • 若想通过docker run为yml中变量赋值,对Spring boot启动类有一个要求,主函数必须有String[] args参数:

    @SpringBootApplication
    public class Application implements CommandLineRunner {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
    }
  • 以下面的配置为例:

    mqtt:uris: tcp://ip:1883username:password:client-id-prefix: ocaldata-topics:list:- subscribe-topic: DataTopicpublish-topics: /t/router/app/outputframework-type: type1- subscribe-topic: /v1/message/requestpublish-topics: /v1/message/responseframework-type: type2
    
  • 有如下几种方式为上面的配置文件赋值:

    方法一:使用下划线分隔大写形式

    确保环境变量的格式与 YML 路径相匹配,并使用下划线分隔层级:

    docker run --name computing \--restart=always \-e MQTT_URIS=tcp://127.0.0.1:1883 \-e MQTT_DATA_TOPICS_LIST_0_SUBSCRIBE_TOPIC=/v1/s1/data/input \-e MQTT_DATA_TOPICS_LIST_1_SUBSCRIBE_TOPIC=/v1/s1/message/input \computing:1.0

    注意:

    • 环境变量的名称与 YML 文件中的路径相关联,使用下划线 _ 代替点 . 和中横线 -
    • 数组索引从 0 开始。

方法二:使用 SPRING_APPLICATION_JSON 传递 JSON 格式配置

  • 使用 SPRING_APPLICATION_JSON 环境变量传递 JSON 格式的配置。这样可以确保复杂的嵌套结构被正确解析:

    docker run --name pdstars-edge-computing \--restart=always \-e SPRING_APPLICATION_JSON='{"mqtt": {"uris": "tcp://127.0.0.1:1883", "data-topics": {"list": [{"subscribe-topic": "DataTopic", "publish-topics": "/t/router/app/outpu", "framework-type": "type1"}, {"subscribe-topic": "/v1/message/request", "publish-topics": "/v1/message/response", "framework-type": "type2"}]}}}' \computing:1.1.0

方法三:使用配置文件挂载

  • 将配置文件保存在主机上,然后在运行容器时挂载到容器内部。例如,将新的配置文件保存在 /path/to/new-application.yml 中,然后使用 -v 参数挂载到容器内的默认配置路径:

    docker run --name computing \--restart=always \-v /path/to/new-application.yml:/config/application.yml \computing:1.0
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/41865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌推广:精准定位潜在客户群体,提高广告转化率

借助谷歌推广,你的品牌将如火箭升空般迅速崛起。作为全球最大的搜索引擎,其影响力犹如站在巨人之肩,触及的受众规模高达数十亿人。更为重要的是,我们可以准确锁定那些最有可能对贵公司的产品或服务产生浓厚兴趣的群体。这并非普通…

【Git】取消追踪多个文件或目录

文章目录 场景方法1. 添加到 .gitignore2. 从暂存区移除 示例1. 编辑 .gitignore 文件2. 从暂存区移除文件或目录 场景 清理:不再希望某些文件被 Git 追踪。配置忽略文件:通常配合 .gitignore 文件使用,以便以后这些文件不会被重新添加到索引…

ContextCapture - 开启三维世界的魔法之门

亲爱的朋友们,当我第一次接触到ContextCapture这款软件时,我的内心激动得难以平静。仿佛一位魔法师突然出现在我面前,向我展示了一个全新的世界。是的,这就是ContextCapture带给我的感觉 - 它不仅仅是一款软件,更是一把…

基于海思Hi3403V100方案开发双目1600万拼接相机测试截图

海思Hi3403V100平台SOC内置四核A55,提供高效且丰富和灵活的CPU资源,以满足客户计算和控制需求,并且集成单核MCU,已满足一些低延时要求较高场景。 多目相机PE108CB板是针对该芯片设计的一款多目凭借相机PCBA,硬件接口支…

7寸微型FPV无人机技术详解

对于7寸微型FPV(First Person View,第一人称视角)无人机技术的详解,可以从以下几个方面进行介绍: 一、定义与基本概念 FPV无人机,全称为“第一人称视角无人机”,它利用安装在无人机上的摄像头…

键盘异常的检测与解决方案

今天对象用Word写文档,按下Ctrl的时候,页面不停地上下滑动,导致无法正常编辑文本。 重启之后,仍然无法解决,推断是键盘坏了。 但是当按下Fn或其他功能键,焦点移除,页面就不会再抖动了。 现在…

JVM的基础介绍(1)

本文是“深入学习JVM”系列的第一篇文章,主要介绍JVM、JVM的3大子系统各自的功能。 我是蚊子码农,欢迎各位的点赞、关注和收藏,有了你们的激励,我会带来更好的作品。 一、JVM的介绍 JVM,即Java Virtual Machine&…

3C电子制造行业MES系统,提高企业生产效率

随着科技的不断进步,3C电子制造行业正迎来传统工厂向数字化工厂转型的阶段。在这场变革中,MES系统发挥着重要的作用,成为了企业变革的“智慧大脑”,引领着生产流程的优化和升级。 那么,MES系统究竟有哪些功能&#xf…

Coze:如何开发你的第一个聊天机器人?

你好,我是三桥君。 我们要学习如何创建第一个聊天机器人?让AI工具成为我们的得力助手,帮助我们的工作。 如何创建Bot? 首先,点击首页里面的“创建Bot”按钮。 ​ “工作空间”我们选择个人空间。接下来是“Bot名称”…

Selenium 等待

环境: Python 3.8 selenium3.141.0 urllib31.26.19 Chromium 109.0.5405.0 (32 位) # 1 固定等待(time) # 固定待是利用python语言自带的time库中的sleep()方法,固定等待几秒。 # 这种方式会导致这个脚本运…

12、matlab中for循环,if else判断语句,break和continue用法以及switch case语句使用

1、前言 在MATLAB中,for循环用于迭代一个固定次数的循环。可以使用if else语句在循环中进行条件判断,根据条件的不同执行相应的代码块。break和continue可以用于控制循环的执行流程,break用于提前结束循环,而continue用于跳过当前…

Win11系统文件夹预览无法预览PDF文件,PDF阅读器是adobe acrobat

三步走 首先,打开文件夹预览功能 然后,设置adobe acrobat为默认PDF打开应用 最后,打开在Windows资源管理器中启用PDF缩略图,正常设定后,会显示配置文件,稍等一会。

EFUSE中redundancy program/read的理解

现在有空,整理下前段时间关于efuse中redundancy program/read模式的理解,下面以TEF22ULP128X32HD18_PURM这款芯片为例,进行笔记整理,如有侵权或不妥之处,请时告知并及时处理。 1 redundancy的作用 efuse中存放的是芯…

在Window下编辑Linux代码文件

1.先启动虚拟机上的linux系统,输入ipconfig拿到linux的ip地址 2.在windows上安装PuTTY软件,用于连接Linux系统,输入Linux的ip即可连接进去linux系统,用的是SSH协议 3.以root运行putty控制台控制LINUX系统,并下载apt-…

安卓面试题系列--【1】

目录 前言一、选择题1. 下列哪些语句关于内存回收的说明是正确的? (b )2. 下面异常是属于Runtime Exception 的是(abcd)(多选)3. Math.round(11.5)等于多少(). Math.round(-11.5)等于多少(c). c4. 下列程序段的输出结果是:(b &am…

24.6.30

星期一: 补cf global round26 D cf传送门 思路:把s中非a字符存下来,共m个,然后暴力检测,复杂度有点迷 代码如下: ll n;void solve(){string s; cin &…

基于若依的文件上传、下载

基于若依实现文件上传、下载 文章目录 基于若依实现文件上传、下载1、前端实现-文件上传1.1 通用上传分析1.2 修改实现上传接口 2、后端实现-文件上传3、后端实现-文件下载4、前端实现-文件下载 官网其实也写了,但是我是自己改造封装了一下,再次迈向全栈…

快手大模型首次集体亮相,用AI重塑内容与商业生态

7月6日,在2024世界人工智能大会期间,快手举办了以“新AI新应用新生态”为主题的大模型论坛,会上,快手大模型首次集体亮相,视频生成大模型可灵、图像生成大模型可图等产品的多项新功能正式发布。 继图生视频、视频续写…

Photoshop属于什么软件 Photoshop缓存文件清理 Mac清理PS缓存 苹果电脑ps内存满了怎么清理

对于所有热爱使用Adobe Photoshop的Mac用户来说,这款软件无疑是创意工作的强大助手。但是,随着时间的积累,你可能会发现Photoshop开始变得有点慢,反应迟钝。这通常是因为Photoshop的缓存和临时文件堆积,占用了宝贵的系…

C++ this 指针到底是个什么特殊的指针

什么是 this 指针? 简单来说,this 指针是一个指向当前对象的指针。每个成员函数(除了静态成员函数)在被调用时,系统都会隐式地传递一个 this 指针给函数。通过 this 指针,成员函数可以访问调用它的那个对象…