0

我一直在努力写这个,所以请多多包涵。我会尽量说清楚: 设置:

  • 具有 3 个分支的 Github 存储库(主/开发/暂存)
  • 每个分支都有一个唯一的 dotenv 文件
  • Repo 有 VueJS 代码(但也可以是 laravel)

现在,使用 GitHub Actions,我们根据分支部署到不同的域。

我无法解决的是如何最好地处理不同的 dotenv 文件。在构建期间,dotenv 用于构建最终产品。理想情况下,出于显而易见的原因,我想将尽可能多的 env 文件内容保留在 GitHub Secret 中,但我不确定这是否可行。另一种选择是基于分支拥有 3 个 dotenv 文件,但这只会增加复杂性和使它们保持同步的混乱。

处理此问题的最佳方法是什么,以便每次部署都能在 dotenv 文件中获得正确的设置?

4

1 回答 1

1

免责声明:我对 dotenv 的最佳实践一无所知。

如果您的密钥大于允许的 64 KB,您可以按照密钥限制的说明进行操作,大致如下:

  • 加密你的秘密:

    gpg --symmetric --cipher-algo AES256 .env
    
  • 将密码存储为秘密,例如LARGE_SECRET_PASSPHRASE

  • 将加密文件添加到存储库,例如.env.gpg

  • 要在工作流中解密,请运行类似

    run: |
      gpg --quiet --batch --yes --decrypt \
          --passphrase=${{ secrets.LARGE_SECRET_PASSPHRASE }} \
          --output .env .env.gpg
    
于 2020-08-13T15:06:14.383 回答