shell动态修改yml配置实例

news/2024/12/24 11:39:50/文章来源:https://www.cnblogs.com/yxh168/p/18548686

yq安装

      https://github.com/mikefarah/yq/tree/master

       

      每个yq版本支持的选项参数都不一样

     

 修改Dockerfile

[root@instance base-tlog-test]# vi Dockerfile FROM 192.168.30.113/library/java:latest
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone
VOLUME /tmp
ADD license.json license.json
ADD ca.crt ca.crt
ADD tlog tlog
ADD yq /usr/bin/yq
WORKDIR /tlog
ADD start_tlog.sh /tlog/start_tlog.shENTRYPOINT ["sh","/tlog/start_tlog.sh"]
View Code

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","./lib/TLog.jar","/license.json"]

#!/bin/sh
configpath="./config/application.yml"datasoureurl=`env | grep spring.datasource.url`
dburl=${datasoureurl#*=}
datausername=`env | grep spring.datasource.username | cut -d"=" -f2`
datapassword=`env | grep spring.datasource.password | cut -d"=" -f2`
redisdatabase=`env | grep  spring.redis.database | cut -d"=" -f2`
redishost=`env | grep spring.redis.host | cut -d"=" -f2`
redisport=`env | grep spring.redis.port | cut -d"=" -f2`
redispassword=`env | grep spring.redis.password | cut -d"=" -f2`
promhost=`env | grep Prometheus.host | cut -d"=" -f2`
promport=`env | grep Prometheus.port | cut -d"=" -f2`
tlogport=`env | grep server.port | cut -d"=" -f2`[ ${dburl} ] && dburl=${dburl} yq  -i '.spring.datasource.url=strenv(dburl)' ${configpath}
[ ${datausername} ] && datausername=${datausername} yq  -i '.spring.datasource.username=strenv(datausername)' ${configpath}
[ ${datapassword} ] && datapassword=${datapassword} yq -i '.spring.datasource.password=strenv(datapassword)' ${configpath}
[ ${redisdatabase} ] && redisdatabase=${redisdatabase} yq  -i '.spring.redis.database=strenv(redisdatabase)' ${configpath}
[ ${redishost} ] && redishost=${redishost} yq -i '.spring.redis.host=strenv(redishost)' ${configpath}
[ ${redisport} ] && redisport=${redisport} yq  -i '.spring.redis.port=strenv(redisport)' ${configpath}
[ ${redispassword} ] && redispassword=${redispassword}  yq -i '.spring.redis.password=strenv(redispassword)' ${configpath}
[ ${promhost} ] && promhost=${promhost} yq  -i '.Prometheus.host=strenv(promhost)' ${configpath}
[ ${promport} ] && promport=${promport} yq -i '.Prometheus.port=strenv(promport)' ${configpath}
[ ${tlogport} ] && tlogport=${tlogport} yq -i '.server.port=strenv(tlogport)' ${configpath}java -Djava.security.egd=file:/dev/./urandom -jar ./lib/TLog.jar /license.json
start_tlog.sh

 

设置环境变量

         

      

通过jq这个shell工具可以动态修改yml配置文件里面的配置项目 

 

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

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

相关文章

『模拟赛』NOIP2024加赛5

Rank 反向挂分大王A. 暴力操作(opt) 签,但是没有人签。 都想到了二分和更新 c 值,但是 c 多多少少没更到最优。 首先还是调和级数预处理,倒序取 min。然后考虑到超过 \(m\) 的也有可能产生更小的代价,因此 \(\mathcal{O(n)}\) 枚举一遍找到最小的 \(j\) 使 \(i\times j\g…

[Moectf2024 ezMaze]

去壳 分析:迷宫分析10 * a2 - 10:Y (a1 - 1) / 8 :X 表示按字节处理迷宫迷宫以十六进制压缩,但迷宫是80 * 56的二进制迷宫 dump下来保存,转二进制,用bin(maze[2:]).zfill(8) 脚本(bfs): from collections import deque maze = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…

有理逼近AAA算法

用于有理逼近的AAA算法,可以有效防止伪极点现象用于有理逼近的AAA算法The AAA Algorithm for Rational Approximation, Yuji Nakatsukasa, Olivier Ste, and Lloyd N. Trefethen, SIAM Journal on Scientific Computing 2018 40:3, A1494-A1522, https://doi.org/10.1137/16M1…

Hgame2023 Reverse

Hgame 2023 [HGAME 2023 week1]test your IDA 用ida打开即可 [HGAME 2023 week1]encode 查壳 32位windows 加密函数将输入的字节转高位和低位进行加密,后与byte_403000进行比较 解密脚本: 这里采取了爆破 enc = [8, 6, 7, 6, 1, 6, 13, 6, 5, 6, 11, 7, 5, 6, 14, 6, 3, 6, 1…

[笔记]Dijkstra算法正确性证明

最近做了一些题,感觉对算法更深刻的理解是比套板子更深层次的,在这个层次上解决问题,思路会更加清晰。比如P5687 [CSP-S2019 江西] 网格图(题解)这道题就是网格图的最小生成树,解法就建立在普通Kruskal的基础上,当时想了挺久也没想出来,看了题解才豁然开朗。所以各算法…

企业搭建帮助中心:提升服务效率与客户满意度的双重优势

在当今快节奏的商业环境中,企业面临着日益增长客户服务需求。搭建一个有效的帮助中心,不仅能够提升服务效率,还能增强客户满意度,这对于企业的长期发展至关重要。本文将探讨企业搭建帮助中心的优势,并提供实用的策略。 在构建企业帮助中心的过程中,HelpLook作为一个强大的…

软件管理,磁盘存储,文件系统以及网络协议

目录硬盘存储术语CHS 磁盘存储管理 LVM RAID硬盘阵列 软件包管理 搭建私有yum仓库 系统安装之后的常用初始化步骤 OSI七层模型 linux端口的简单介绍 TCP简单介绍 ip地址分类硬盘存储术语CHShead:磁头 磁头数=盘面数 track:磁道 磁道=柱面数 sector:扇区,512bytes cylinder:…

【Capture one 2023软件下载与安装教程】

1、安装包 「Capture One 23」: 链接:https://pan.quark.cn/s/9ff0306530d1 提取码:xXDC 「Capture one22」: 链接:https://pan.quark.cn/s/34b723a4d6e1 提取码:gpM3 「Capture One 21」: 链接:https://pan.quark.cn/s/d65ea77ba33a 提取码:8A5D 2、安装教程(建议关闭杀…

[题解]P5687 [CSP-S2019 江西] 网格图

P5687 [CSP-S2019 江西] 网格图 简单来说题目就是给定一个\(n\times m\)的网格图,同行边权相同,同列边权相同,求该网格图的最小生成树。 根据Kruskal算法的贪心思想,我们要优先选择权值尽可能小的行,并将这条边应用于尽可能多的列。列方向同理。 为了保证最终生成树的连通…

鸿蒙NEXT自定义组件:太极Loading

【引言】(完整代码在最后面) 本文将介绍如何在鸿蒙NEXT中创建一个自定义的“太极Loading”组件,为你的应用增添独特的视觉效果。 【环境准备】 电脑系统:windows 10 开发工具:DevEco Studio NEXT Beta1 Build Version: 5.0.3.806 工程版本:API 12 真机:mate60 pro 语言:…

09C++选择结构(3)——教学

1、求3个整数中最小值; 2、3个数排序; 3、随机函数rand(); 4、if语句的应用; 5、bug与debug一、求3个整数中最小值 题目:输入三个整数,表示梨的重量,输出最小的数。 方法1:经过三次两两比较,得出最小值。 a<=b && a<=c min=ab<=c && b<=a…

趋动云—pycharm连接教程

一、创建项目 二、上传代码 三、启动趋动云虚拟环境四、连接pycharm 1. 打开pycharm,创建项目(上传代码),或者直接打开项目代码 2. 配置在线虚拟环境 (1)点击设置Settings->Python Interpreter->Add Interpreter->On SSH (2)新建在线虚拟环境连接 输入信息:…