我有2个不同的目录,每个目录都包含用于不同目的的Docker容器,并且都是用Docker组成的。
目录A具有Traefik配置和容器(以及其他容器)以及环境变量,而目录B是一组容器。
我现在想在目录B容器中包含Traefik标签,但在目录B中运行合成时,我会遇到:
WARN[0000] The "DOMAIN_NAME" variable is not set. Defaulting to a blank string.
service "[service name]" refers to undefined network traefik_proxy: invalid compose project
我猜这是因为目录B中的服务无法看到traefik_proxy,因为它是不同堆栈的一部分,与DOMAIN_NAME变量相同。
我如何才能让目录B“到达”目录A?以我当前的配置是否可能?
1条答案
按热度按时间sgtfey8w1#
如果您想让多个compose项目共享一个Traefik前端,这当然是可能的,但是您需要将Traefik放置在一个共享网络上。例如:
首先创建共享网络:
然后启动Traefik项目:
现在,对于每个您希望通过Traefik提供的项目,将您的服务放到
services
网络上。例如,假设我们在app1/docker-compose.yaml
中有这样的项目:那我就跑:
现在我的
app1
服务可以在http://localhost/app1/
上使用。我们可以像这样添加任意多的服务;唯一的要求是集装箱被连接到X1 M5 N1 X网络。