Total Pageviews

Wednesday 17 July 2019

env2file

A tool for creating configuration files by reading environment variables.

简介

由环境变量生成配置文件的命令行工具,常用于集成的Docker容器中,容器启动后、服务真正进程启动前执行。

安装

wget https://github.com/barnettZQG/env2file/releases/download/0.1.1/env2file-linux
docker环境
docker pull barnett/env2file
# test
docker run -it --rm barnett/env2file env2file

使用说明

NAME:
   env2file - A new cli application

USAGE:
   env2file [global options] command [command options] [arguments...]

COMMANDS:
     conversion, conv  Renders the specified file template by reading the environment variable
     create, cre       Generates a configuration file to the specified path by reading the environment variable and following the specified format
     help, h           Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help
   --version, -v  print the version

生成指定格式的配置文件

env2file create 命令根据指定规范生成配置文件,现支持 mysql redis and default

关于生成mysql配置文件

读取以MYSQLC_开头的环境变量,以下划线分割,第二部分为配置块名称,比如mysqld 或者client. 第三部分为配置名 例如: MYSQLC_MYSQLD_PORT = 3306 custom.cnf:
[mysqld]
 port = 3306

关于生成redis配置文件

读取以REDISC_开头的环境变量,以下划线分割,第二部分为配置名 例如: REDISC_PORT = 6379 命令:
env2file create --path redis.conf --perm 0755 --format redis
custom.conf:
port 6379

关于生成默认配置文件

读取以C_开头的环境变量,以下划线分割,第二部分为配置名 例如: C_MYNAME = barnett custom.conf:
myname=barnett
以上类型均支持值热渲染,即如果在环境变量值中具有 ${XXX} 的规范字符串,将继续渲染值,使用对应的环境变量,仅支持一级渲染。

模版配置文件重写

env2file conversion 命令根据指定的配置文件模版,需要渲染的变量使用 ${XXX} 的形式定义。工具将根据从环境变量中获取值来渲染并重写文件,仅支持一级渲染。
  • 定义默认值 ${XXX:123} 此方式定义的变量若从环境变量中无法读取值时,将使用123作为默认值.

No comments:

Post a Comment