Docker Compose
不能使用.env
中docker-compose.yml
中的变量。 .env
与docker-compose.yml
位于同一目录。
.env:
port:3306
docker-compose.yml:
ports:
- ${port}:${port}
文档显示了完全相同的示例,并说它可以正常工作
web:
image: "webapp:${TAG}"
执行docker-compose up
WARNING: The port variable is not set. Defaulting to a blank string.
ERROR: The Compose file './docker-compose.yml' is invalid because:
services.mariadb.ports is invalid: Invalid port ":", should be [[remote_ip:]remote_port[-remote_port]:]port[/protocol]
如何解决?
答案 0 :(得分:1)
似乎您的.env格式错误。试试:
PORT = 3306
答案 1 :(得分:1)
来自https://docs.docker.com/compose/env-file/:
语法规则
这些语法规则适用于.env文件:
- Compose希望env 文件中的每一行都是VAR = VAL格式。
- 以#开头的行被视为注释并被忽略。
- 空白行将被忽略。
- 没有对引号的特殊处理。这意味着它们是VAL的一部分。
在.env
中,使用=
代替: