[英]Is it possible to read network name in docker-compose from env?
我试图不对 my.network 名称进行硬编码,因为它是一个开源项目(而且我有多个实例在同一台服务器上运行,用于不同的应用程序)。
定义.network时是否可以使用环境变量?
这不起作用:
networks:
${DOCKER_NETWORK_NAME}:
name: ${DOCKER_NETWORK_NAME}
Compose 有一个项目名称的内部概念,大多数 Docker object 名称都以该名称为前缀。 例如,如果您位于名为foo
的目录中,并且您的 Compose 文件具有
networks:
something:
然后你运行docker.network ls
,你会看到一个名为foo_something
的网络。
我通常建议不要手动指定网络、卷或容器的名称。 您可以选择要在docker-compose.yml
文件中使用的任何名称,它将被限定在该文件中。
相反,这要求系统的不同安装要么位于具有不同名称的目录中,要么设置COMPOSE_PROJECT_NAME
环境变量(可能在.env
文件中),要么始终使用docker-compose -p
标志。
在 .networks 的特定情况下,Compose提供了一个名为default
的 .network,如果您实际上没有networks:
块,则这是默认值。 使用它并没有任何缺点,而且大多数应用程序不需要多个 internal.networks。 我只是忽略了networks:
完全。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.