# envrepl **Repository Path**: seeker_rs/envrepl ## Basic Information - **Project Name**: envrepl - **Description**: 环境变量替换工具:适用于不支持环境变量配置的项目,容器化改造时的环境变量预处理。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-10-08 - **Last Updated**: 2024-12-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 环境变量替换工具 环境变量替换工具(envrepl)适用于不支持环境变量配置的项目,容器化改造时的环境变量预处理。 ### 一、开始使用 配置文件说明 * config.toml:环境变量替换工具的配置文件,指定基本信息和环境变量替换规则。 * format:配置文件格式,支持json、array、properties。 * target:目标配置文件绝对路径。 * env数组:环境变量映射关系 * key:需要替换的配置项,如jdbc.url。 * name:读取的环境变量名,如JDBC_URL。 * target:可选,配置文件绝对路径,一般一个项目使用一个配置文件,针对特殊情况,在这里特殊指定,程序单独处理。 * format:可选,但target不为空时,必须指定。 ### 二、Dockerfile改造 #### 1.Dockerfile安装工具 ##### 1.1 方式1:直接下载二进制文件 ```Dockerfile RUN curl -L https://gitee.com/seeker_rs/envrepl/releases/download/v1.0.0/envrepl-$(uname -s)-$(uname -m) -o envrepl \ && mv envrepl /usr/local/bin/envrepl \ && chmod +x /usr/local/bin/envrepl # 配置文件 COPY env/config.toml /usr/local/bin/config.toml ``` ##### 1.2 方式2:COPY二进制文件到镜像中 > 手动复制可执行文件的方式,需要利用rename.sh脚本,将不同平台二进制文件重命名为envrepl。 ```Dockerfile COPY env/envrepl-Linux-x86_64 /usr/local/bin/envrepl-Linux-x86_64 COPY env/envrepl-Linux-aarch64 /usr/local/bin/envrepl-Linux-aarch64 COPY env/rename.sh /usr/local/bin/rename.sh # 可执行文件授权 RUN chmod +x /usr/local/bin/* # 配置文件 COPY env/config.toml /usr/local/bin/config.toml ``` > 参考镜像原始的启动命令,在此之前增加envrepl的执行。 #### 2.k8s使用脚本预先处理 ##### 2.1 方式1:无启动顺序要求 ```yaml # 由于postStart是隔离异步执行,日志无法在标准终端展示,需将日志写入到文件。 containers: lifecycle: postStart: exec: command: ["sh", "-c", "rename.sh && envrepl -c /usr/local/bin/config.toml > /var/log/nginx/env.log 2>&1"] ``` ##### 2.2 方式2:执行完成后启动容器 ```Dockerfile # 修改Dockerfile启动命令,startup.sh为原始启动命令,根据不同镜像情况修改,tomcat是startup.sh。 CMD rename.sh && envrepl -c /usr/local/bin/config.toml && startup.sh ``` #### 3.工具参数说明 ```shell # 输出帮助 envrepl -h envrepl 1.0.0 Seeker 欢迎使用 envrepl ,一种环境变量替换工具,适用于不支持环境变量的项目进行容器化改造,已支持json、properties等配置文件格式。 USAGE: envrepl.exe [OPTIONS] OPTIONS: -c, --config-path 配置文件路径 [default: ./config.toml] -h, --help Print help information -V, --version Print version information # 执行命令 envrepl -c /usr/local/bin/config.toml ```