ruby-on-rails - 带有 gitlab CI/CD 的 Rails .env
问题描述
Rails项目通过gitlab CI遇到环境变量问题。目前,我正在使用 dotenv gem 来存储我的项目的凭据。另外,我已经在 gitlab CI 环境中分配了环境变量。例如,database.yml:
host: <%= ENV['DATABASE_HOST'] %>
.env 文件:
DATABASE_HOST=somehost
gitlab CI 变量:
DATABASE_HOST=somehost
我将 .env 文件放在 .gitignore 中,猜测 Rails 会使用来自 gitlab CI 的变量。但是对数据库的访问错误。找到了一种方法,按照 dotenv gem 的建议创建本地 .env 文件和共享文件。然后将本地文件放在 .gitignore 中,并将带有 gitlab CI/CD 凭据的共享文件推送到存储库。
但是很难理解这种方法有多安全?而且,一般来说,为 Rails 项目和 gitlab CI/CD 使用环境变量/凭据的最佳实践是什么?
解决方案
理想情况下,.env 在大多数情况下都会包含敏感信息。因此将这些提交到任何版本控制系统中都不是一个好习惯。
https://dev.to/somedood/please-dont-commit-env-3o9h - .env 文件所涉及风险的详细指南
推荐阅读
- kubernetes - K8s:尝试访问集群外的某个域时如何更改 pod 的名称服务器
- flutter - 如何在列内使用 FractionallySizedBox?
- mysql - 我可以在 MYSQL 的 HAVING 子句中使用表别名吗?
- typescript - 功能
( ): T[] => IComponent[] - 不分配给 T - java - Apache POI replaceText() 副作用,改变行距
- excel - 随着行的增加,单元格中的居中形状从顶部增加高度
- swift - 我应该如何将 DispatchGroup 用于两个 url 请求?
- javascript - 如何在javascript中的两个现有对象之间复制
- z3 - 当断言 0 除以 0 为 1 时,z3 返回未知
- python-3.x - 人脸识别库