我有一个gitlab项目正在镜像(拉)一个github私有仓库。由于其来源,存储库具有一个“ config / private.js”文件,其中包含所需的所有api密钥和服务器配置。或者更确切地说,该文件不在存储库中,而是在 .gitignore 中。
如何用此文件填充gitlab环境?如果我可以保留一个特殊的文件,该文件不在存储库中,并且不使用提交进行更新,并且用于通过以下构建命令填充dist环境,则将是理想的:
- cat secrets.file > src/config/private.js
但是-我在文档中找不到运气。我确实处理过项目和组的机密-但是1.仅添加它们会很乏味,而且2.我需要重写代码,或者创建另一个同样乏味的脚本以将每个文件回显到文件中。
答案 0 :(得分:0)
这有点复杂。
Gitlab不安装存储库,而是安装构建结果,因此您可以将api密钥文件注入gitlab的CI CD中-但您必须为每个环境更改/重新构建它。 (您无法测试结果,然后将已知的工作结果重新部署到prod。)在我的情况下,我只构建了一次,并承诺仅将相关的密钥应用于stage和prod。
我要做的是将机密作为变量保留在目标位置。我在CI CD期间注入了一个指向env的密钥文件。例如,它可能将密钥设置为__MY_API_KEY__
。我在部署中使用安装后脚本将这些env密钥应用于已安装的已构建脚本(这只是对一组env变量和/ build文件的tr命令)。
这样,我可以在本地使用硬编码的 gitignored 私有文件,并且仍然可以分别注入每个环境的私有密钥。