【问题标题】:What's the best practice for including a .env file in a jenkins build?在 jenkins 构建中包含 .env 文件的最佳实践是什么?
【发布时间】:2015-08-03 21:11:17
【问题描述】:

这是我的情况: 我有一个 Django 应用程序,它依赖于存储在 .env 文件中的配置值。此.env 文件与源代码管理分开,以保持敏感信息的私密性。这个 Django 应用程序部署在 docker 容器中,我设置了 jenkins,以便在将更改签入到我们的 git 存储库时重新构建容器。除非构建环境中存在.env 文件,否则构建将失败。包含该文件的最佳方式是什么?

我目前已将 jenkins 设置为执行将文件写入构建环境的 shell 命令,但我不禁觉得这是次优的,安全方面的。有什么更好的方法来做到这一点?

【问题讨论】:

  • 当您说 shell 命令将文件写入构建环境时,您的意思是它对文件或类似文件进行回显?如果是这样,更好的方法是将 env 文件本地存储在主机中(具有安全权限),然后使用 shell 命令使用 cp/scp/rsync 将文件从主机复制到容器跨度>

标签: django jenkins docker environment-variables 12factor


【解决方案1】:

将文件包含到源代码中并仅授予您/授权用户访问权限会违反您的隐私政策吗? 否则,您可以尝试始终将文件保留在 Jenkins 工作区目录中,并且在清理工作区时永远不要删除它。

【讨论】:

    【解决方案2】:

    我们想出的答案是将文件存储在 s3 上,并在构建时使用 aws cli 来获取文件。由于无论如何构建都注定要上传到 ec2,因此对这两个操作都使用 aws 凭据是有意义的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 2013-07-05
      • 2019-04-20
      • 2021-03-22
      相关资源
      最近更新 更多