背景
当我将我的 docker 环境部署到生产服务器时,我注意到应用程序无法正常工作。由于某种原因,容器内的环境变量设置不正确。同样重要的是,我通过以下方式定义环境环境文件。
问题
当我意识到问题所在时,我就能追踪到问题所在,这docker-compose
不会扩展生产服务器上的环境文件中定义的变量,而在我的开发机器上,它却按照我直观的期望去做。
演示配置
这个简单的配置只适用于我的开发环境。在生产环境中,它将产生:
错误:没有这样的图像:${DISTRIBUTIVE}:${TAG}:无效的参考格式:存储库名称必须小写
# .env
DISTRIBUTIVE=debian
TAG=latest
IMAGE=${DISTRIBUTIVE}:${TAG}
# docker-compose.yml
version: "3.0"
services:
service:
image: "${IMAGE}"
问题的可能原因
我认为这可能是docker-compose
(扩展变量)的一个新功能,也许与我在开发机器上安装了更新的 docker 有关。
- 开发
- docker-19.03.12-ce
- 撰写-1.27.3
- 产品
- 码头工人-19.03.13
- 撰写-1.21.0
问题
- 是否有关于环境文件内变量的文档?
- 如果这是一个新功能,那么它的版本要求是什么?