Docker compose 未被反向代理接收

Docker compose 未被反向代理接收

我有一个 docker-compose,它创建一个带有 http 服务器的容器,该容器不会被 jwilder 的 nginx 反向代理接收,但它在手动实例化时可以工作。

version: '2'
services:
    mongo:
        image: tutum/mongodb
        expose:
            - "27017"
        environment:
            - AUTH=no

    backend:
        build:
            context: "./instance"
        hostname: instance
        ports:
            - "1080:8080"
        expose:
            - "8080"
        links:
            - mongo

    frontend:
        build:
            context: "./instancegui"
        ports:
            - "80"
        environment:
            - VIRTUAL_HOST=some.host.com
            - LETSENCRYPT_HOST=some.host.com
            - [email protected]

反向代理生成的配置文件显示上游{...DOWN},
但容器在像这样实例化时运行良好

docker run --name group_frontend_1 -p 80 -e "VIRTUAL_HOST=some.host.com" -e "LETSENCRYPT_HOST=some.host.com" -e "[email protected]" -d db70e6003db9

答案1

好的,找到解决方案了

问题是容器不在代理容器监视的网络中,最直接的方法是将容器设置为桥接模式

network_mode: "bridge"

并且 80 端口是多余的,它只需要公开

expose:
        - "80"

来源:
https://github.com/jwilder/nginx-proxy/issues/552
https://github.com/docker/compose/issues/3012

答案2

为什么不使用一个简单的 nginx 镜像。Docker 已经为您做好了 DNS。

相关内容