首页 > 解决方案 > 带有 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 使用环境变量/凭据的最佳实践是什么?

标签: ruby-on-railsgitlabenvironment-variablesgitlab-cicredentials

解决方案


理想情况下,.env 在大多数情况下都会包含敏感信息。因此将这些提交到任何版本控制系统中都不是一个好习惯。

https://dev.to/somedood/please-dont-commit-env-3o9h - .env 文件所涉及风险的详细指南


推荐阅读