我的 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,所以还有其他方法可以将这两者连接吗?
搜索并没有给我其他选择。我尝试过