【问题标题】:docker-compose can't use variables from .envdocker-compose 不能使用 .env 中的变量
【发布时间】:2021-01-24 08:10:23
【问题描述】:

Docker Compose 不能在docker-compose.yml 中使用来自.env 的变量。 .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]

如何解决?

【问题讨论】:

  • port:3306? port=3306

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


【解决方案1】:

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

PORT = 3306

【讨论】:

    【解决方案2】:

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

    语法规则

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

    • Compose 要求 env 文件中的每一行都采用 VAR=VAL 格式。
    • 以 # 开头的行作为 cmets 处理并被忽略。
    • 空白行被忽略。
    • 没有对引号的特殊处理。这意味着它们是 VAL 的一部分。

    .env 中,使用= 而不是:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 2021-07-02
      • 2019-02-12
      • 2021-12-13
      • 1970-01-01
      相关资源
      最近更新 更多