mise如何集成Dotenvx做环境变量管理?
· 2 min read
不少同学在使用mise作为项目开发工具,但是mise的Secret管理有点复杂,当然不少同学可能会选择sops,
可能还不是那么便捷,门槛也比较高一些。那么能否让Dotenvx来管理mise的环境变量呢?
这样既可以做到.env
文件同时可以被mise和应用程序使用,同时关键配置中的敏感数据还是加密的。
那么如何做到这一点呢?
mise提供了多种加载环境变量的方式,其中一个就是执行外部脚本并导入该脚本中导出的环境变量,
举一个例子, 你创建一个scripts/env.sh
脚本,内容如下:
export ADMIN=linux_china
然后你在mise.toml
文件中添加以下代码:
[env]
_.source = "scripts/env.sh"
然后你执行一下mise env --json
就可以看到ADMIN环境变量啦。
借助该机制,我们只需要调整一下env.sh
脚本,调整为从Dotenvx加载加密的环境变量,代码如下:
eval $( dotenvx decrypt --stdout --format shell )
然后你通过dotenvx init
创建一个.env
,然后执行dotenvx set --encrypt admin your_name
,
就可以生成加密的.env
文件,然后你在执行一下mise env --json
就可以看到加载的环境变量。
加载环境变量的过程中,dotenvx会自动完成变量的解密。
提示: 不要担心脚本的执行性能,dotenvx命令行的在执行效率会非常高。