【发布时间】:2018-09-01 14:18:59
【问题描述】:
我在 Heroku 上有两个独立的应用程序,它们非常相似,因此它们共享相同的主代码库。它们各自设置为不同的环境。它们仅在几个环境变量的值上有所不同。这一切都很好,因为可以为每个环境设置环境变量。
但除了环境变量之外,还有一个文件需要在两个环境之间有所不同。该文件需要命名相同,但内容必须不同。
如何在一个环境中部署一个文件,而在另一个环境中部署另一个文件?
【问题讨论】:
我在 Heroku 上有两个独立的应用程序,它们非常相似,因此它们共享相同的主代码库。它们各自设置为不同的环境。它们仅在几个环境变量的值上有所不同。这一切都很好,因为可以为每个环境设置环境变量。
但除了环境变量之外,还有一个文件需要在两个环境之间有所不同。该文件需要命名相同,但内容必须不同。
如何在一个环境中部署一个文件,而在另一个环境中部署另一个文件?
【问题讨论】:
虽然我更喜欢 Navin 更笼统的答案,但我碰巧使用的是 Express,并通过在 get 请求中提供正确的文件来解决问题:
app.get("/MyFile", (req, res) => {
// Serve a different file based on the environment variable
res.redirect(process.env.ACTUAL_FILE_PATH)
})
【讨论】:
如果不知道它是什么类型的文件以及您使用的是什么语言,这很难回答。
一种通用方法是将两个文件都放在代码库中,例如 sample_file_env_1.txt 和 sample_file_env_2.txt,然后在您的 Procfile 或应用程序启动脚本中,调用另一个脚本将该文件复制到您所在的位置期望取决于设置的环境变量。
【讨论】: