【发布时间】:2021-07-22 12:55:40
【问题描述】:
遇到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 使用环境变量/凭据的最佳实践是什么?
【问题讨论】:
-
Rails 加密的机密确实解决了 Dotenv 所做的大部分问题,并且没有明文文件的风险(例如被意外提交)。
标签: ruby-on-rails gitlab environment-variables gitlab-ci credentials