docker-compose不能使用.env中的变量

时间:2020-10-09 08:48:34

标签: linux docker ubuntu docker-compose environment-variables

Docker Compose不能使用.envdocker-compose.yml中的变量。 .envdocker-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]

如何解决?

2 个答案:

答案 0 :(得分:1)

似乎您的.env格式错误。试试:

PORT = 3306

答案 1 :(得分:1)

来自https://docs.docker.com/compose/env-file/

语法规则

这些语法规则适用于.env文件:

  • Compose希望env 文件中的每一行都是VAR = VAL格式。
  • 以#开头的行被视为注释并被忽略。
  • 空白行将被忽略。
  • 没有对引号的特殊处理。这意味着它们是VAL的一部分。

.env中,使用=代替: