inside/outside docker-compose 的 Nginx 上游服务器

Nginx upstream servers for inside/outside docker-compose

我想要一个 Nginx 代理一个服务,该服务可以 运行ning 在 docker 内部或外部作为一个简单的过程。

http {

    upstream web {
        server web:80; # when running in Docker-Compose
        server 127.0.0.1:80; # when running outside
    }

    server {
        listen 80;

        location /web/ {
            proxy_pass http://web;
            proxy_set_header Host $host;
        }
    }
}

但是当在 docker-compose 之外尝试 运行 它时,我收到一个错误,指出主机 web 无法解析。我知道nginx能够解析上游服务器和启动时刻是一个限制,但是有没有其他方法可以实现这个?

谢谢

我最终解决了这个问题,方法是使用 Dockerhost docker 图像并将 proxy_pass 的值替换为 nginx docker 启动命令的一部分。