Docker Compose:没有代理的Django,uWSGI,NGINX(不同的容器)

时间:2018-06-19 11:30:44

标签: docker nginx uwsgi

我的 docker-compose.yaml

version: '3'

services:

  nginx:
    restart: always
    build: ./nginx/
    depends_on:
      - web
    ports:
      - "8000:8000"
    network_mode: "host"  # Connection between containers

  web:
    build: .
    image: app-image
    ports:
      - "80:80"
    volumes:
      - .:/app-name
    command: uwsgi /app-path/web/app.ini

NGINX conf文件为

upstream web {
    server 0.0.0.0:80;
}

server {
    listen 8000;
    server_name web;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        alias "/app-static/";
    }

    location / {
        proxy_pass      http://web;
    }
}

所以基本上我在一个容器“ web”中有Django和uWSGI,在容器“ nginx”中有NGINX。我通过代理使用NGINX链接了两者,并且都工作正常。 (我不知何故需要'network_mode:“ host”',否则不起作用)

由于它们是不同的容器,因此我无法使用.sock文件(除非我使用一些批量黑客程序来共享.sock文件,否则效果不佳!)

即使这可行,但还是被要求避免通过代理使用NGINX,所以还有其他方法可以将这两者连接吗?

搜索并没有给我其他选择。我尝试过

0 个答案:

没有答案