在 Gitlab CI 中使用 Rails 凭据

Posted

技术标签:

【中文标题】在 Gitlab CI 中使用 Rails 凭据【英文标题】:Using Rails credentials within Gitlab CI 【发布时间】:2019-07-02 17:12:00 【问题描述】:

我需要在 Gitlab CI 中使用某些环境变量。我需要将这些变量放在 Rails 凭据中,而不是通过设置存储在 Gitlab 运行器中。

我已经为此工作了大约一个星期,并且正在努力寻找可行的解决方案。理想的格式将能够使用 ERB 样式的降价(即 - <%= Rails.application.credentials[:my_credential] %>),但当然我无法预处理 ERB 并且 Gitlab CI 仍然可以运行。

如何在 Gitlab CI 上使用无法手动存储在运行器中的 ENV 变量?

【问题讨论】:

These variables cannot be stored on the runners (via the GUI interface) 背后的原因是什么? 好问题托尼。我可能没有在问题中明确说明这一点,并将进行编辑。 Gitlab 运行器允许存储环境变量,但出于我们在应用程序中的业务目的,这些需要存储在 Rails 凭据中。 【参考方案1】:

您可以将它们存储在您应用的config files 中。具体来说,您可以创建一个可供跑步者使用的./config.toml 文件。然后,您可以在文件中使用 ERB 来访问您的 Rails 凭据。您只需要设置一个在部署期间解析它的脚本。

这是an example 的一种方法。请注意,您需要将.erb 添加到文件扩展名中。

【讨论】:

以上是关于在 Gitlab CI 中使用 Rails 凭据的主要内容,如果未能解决你的问题,请参考以下文章

在哪里指定 GitLab ci/cd 管道的存储库凭据?

在 GitLab 中安全地存储秘密和凭据

Rails项目切换到selenium后,CI无法正常执行。

从 gitlab-ci dir 中获取所有工件并使其成为工件

在 Gitlab CI 中使用 cypress 和 django

Gitlab CI 设置错误 - 找不到 JavaScript 运行时