环境变量和 Docker dev、staging 和 prod 之间的区别

Env vars and Docker differences between dev, staging, and prod

虽然我的具体示例涉及 Django、Docker 和 Heroku,但我认为这些都是非常笼统的 testing/QA 问题。

我在开发中使用 Selenium 测试了一个 dockerized Django 应用程序,确认我的静态文件正在从我的本地文件夹正确提供 (EXPECTED_ROOT = '/staticfiles/')。此应用程序已部署到 Heroku,我可以看到(在视觉上和在开发工具中)静态文件也从 CloudFront 正确提取。我想用我在开发中使用的相同测试将其形式化。我的第一个问题与 if/how 环境变量用于测试有关:

此外,为了 运行 这个暂存测试,我需要像在开发中一样在我的 Docker 图像中安装 Firefox。也许这在舞台上没问题,但在生产中我相信我应该以尽可能小的图像为目标。所以问题是关于staging和prod之间的区别:

感谢任何帮助。

Config Var的想法是设置因环境而异的配置变量。话虽如此,您可以控制环境并可以定义所需的内容。

我个人会使用不同的方法:创建一个独立于环境的测试(例如,而不是测试 expected root 我会确认找到给定的 DIV ID,或者其他一些元素)。
这足以确认测试成功并且功能按预期工作。

生产 Dockerfile 确实不需要 Selenium,并且可以与暂存文件不同。