如何使用秘密yaml配置文件部署dokku应用程序而不提交文件?

时间:2017-08-13 22:10:04

标签: git dokku

类似于:this question, 我有一个rails应用程序,我希望通过做类似的事情来部署dokku:

git push dokku master

该应用程序需要一个包含大量机密信息的database.yml和其他config.yml文件。在存储库中,出于显而易见的原因,这些文件被gitignored。 (只提交了database.yml.example和config.yml.example文件,并删除了机密信息。)

Dokku无法构建和部署应用程序,抱怨缺少这些配置文件。

如何使用dokku部署我的应用程序,而无需将配置文件提交给git?

我不想创建一个单独的分支并取消它们。我想在服务器上维护我自己的这些文件版本(dokku运行的地方)。我只是想让dokku从服务器上的本地目录中查找或复制它们。怎么办?

1 个答案:

答案 0 :(得分:1)

为什么要首先提交这些文件?使用配置文件获取敏感信息被认为是不好的做法。

建议您根据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")