如何在不提交文件的情况下使用秘密 yaml 配置文件部署 dokku 应用程序?
How to deploy dokku app with secret yaml configuration file without committing the file?
类似于:this question,
我有一个 rails 应用程序,我希望通过执行以下操作使用 dokku 进行部署:
git push dokku master
该应用程序需要一个 database.yml 和其他 config.yml 个包含大量秘密信息的文件。在存储库中,由于显而易见的原因,这些文件 git 被忽略了。 (只有 database.yml.example 和 config.yml.example 文件已提交,删除了秘密信息。)
Dokku 无法构建和部署应用程序,抱怨缺少这些配置文件。
如何使用 dokku 部署我的应用程序,而不将我的配置文件提交给 git?
我不想创建一个单独的分支并忽略它们。我想在服务器(运行 dokku 的地方)上维护我自己的这些文件版本。我只想让 dokku 从服务器上的本地目录中查找或复制它们。怎么做到的?
你为什么要首先提交这些文件?将配置文件用于敏感信息被认为是不好的做法。
建议您按照the official documentation设置环境变量。
然后您可以在代码中访问这些变量:
# Python
import os
database_password = os.environ.get("DATABASE_PASSWORD")
# Java
String database_password = System.getenv("DATABASE_PASSWORD")
# PHP
$database_password = getenv("DATABASE_PASSWORD");
# Go
import "os"
os.Getenv("FOO")
类似于:this question, 我有一个 rails 应用程序,我希望通过执行以下操作使用 dokku 进行部署:
git push dokku master
该应用程序需要一个 database.yml 和其他 config.yml 个包含大量秘密信息的文件。在存储库中,由于显而易见的原因,这些文件 git 被忽略了。 (只有 database.yml.example 和 config.yml.example 文件已提交,删除了秘密信息。)
Dokku 无法构建和部署应用程序,抱怨缺少这些配置文件。
如何使用 dokku 部署我的应用程序,而不将我的配置文件提交给 git?
我不想创建一个单独的分支并忽略它们。我想在服务器(运行 dokku 的地方)上维护我自己的这些文件版本。我只想让 dokku 从服务器上的本地目录中查找或复制它们。怎么做到的?
你为什么要首先提交这些文件?将配置文件用于敏感信息被认为是不好的做法。
建议您按照the official documentation设置环境变量。
然后您可以在代码中访问这些变量:
# Python
import os
database_password = os.environ.get("DATABASE_PASSWORD")
# Java
String database_password = System.getenv("DATABASE_PASSWORD")
# PHP
$database_password = getenv("DATABASE_PASSWORD");
# Go
import "os"
os.Getenv("FOO")