Py学习  »  docker

如何在docker compose中定义一个名为in的环境值?

alik • 6 年前 • 1768 次点击  

我想传递一个名为 ABC:DEF 到定义在 docker-compose.yml .

怎么做?

如果我在服务定义中写入

environment:
    ABC:DEF: ${ABC:DEF}

我得到了

ERROR: Invalid interpolation format for "environment" option in service: "${ABC:DEF}"

编辑:这个问题的目的是了解是否可以使用包含 : 冒号以及如何在 复方制剂 . 讨论使用的替代方案是什么 : 从受影响容器内运行的“thing”的角度来看,冒号不是问题的一部分。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46209
文章 [ 2 ]  |  最新文章 6 年前
Manish R
Reply   •   1 楼
Manish R    7 年前

在docker compose中定义环境变量的方法有很多,如下所示

  1. 在compose文件中定义它并通过shell传递值

enter image description here

    $ export TAG=v1.0

    $ docker-compose up -d
  1. 运行docker compose时可以设置env变量

    docker compose run-e tag=v2.0版

  2. 可以在compose文件中传递外部变量文件

enter image description here

  1. 可以在.env文件中定义默认值

enter image description here

当在多个文件中设置相同的环境变量时,这里使用的是组合使用的优先级来选择使用哪一个值:

  1. 撰写文件
  2. 外壳环境变量
  3. 环境文件
  4. 文档文件
  5. 变量未定义
Benyamin Jafari
Reply   •   2 楼
Benyamin Jafari    7 年前

使用如下行而不是 ABC:DEF: ${ABC:DEF} :

environment:
  POSTGRES_PASSWORD: any-password 

[ 更新 ]

如果 : 不能在系统中的环境变量中使用,请将:替换为 __ (双下划线)。

Configuration_in _ASP.NET _Core_Reference

所以我想应该是这样的:

ABC__DEF: <asp-environment>