我在使用Docker(docker-toolbox,docker-compose)设置Django和所需的所有依赖项时遇到了这种情况。
我在尝试访问我的网址http://192.168.99.100:8000/时遇到错误,该网址为 502 Bad Gateway(nginx / 1.13.1)。对于这个错误,我不知道它来自何处,因为它是我第一次在Docker上使用Django和nginx。
docker-compose.yml:
version: '2'
services:
nginx:
image: nginx:latest
container_name: nz01
ports:
- "8000:8000"
volumes:
- ./src:/src
- ./config/nginx:/etc/nginx/conf.d
- /static:/static
depends_on:
- web
web:
...
...
Dockerfile:
FROM python:latest
ENV PYTHONUNBUFFERED 1
#ENV C_FORCE_ROOT true
ENV APP_USER myapp
ENV APP_ROOT /src
RUN mkdir /src;
RUN groupadd -r ${APP_USER} \
&& useradd -r -m \
--home-dir ${APP_ROOT} \
-s /usr/sbin/nologin \
-g ${APP_USER} ${APP_USER}
WORKDIR ${APP_ROOT}
RUN mkdir /config
ADD config/requirements.pip /config/
RUN pip install -r /config/requirements.pip
USER ${APP_USER}
ADD . ${APP_ROOT}
config / nginx / ... .conf
upstream web {
ip_hash;
server web:8000;
}
server {
location /static/ {
autoindex on;
alias /static/;
}
location / {
proxy_pass http://web/;
}
listen 8000;
server_name localhost;
}
我做错了吗?
答案 0 :(得分:3)
这里的问题是gunicorn
命令行参数,缺少-b
标志。需要使用-b
标志启动它以与指定的地址绑定。在您的情况下,gunicorn
会将自身绑定到默认127.0.0.1:8000
,而其他容器无法访问该默认command: bash -c 'python manage.py makemigrations && python manage.py migrate && gunicorn oqtor.wsgi -b 0.0.0.0:8000'
。因此,只需将web命令更改为以下内容:
java.util.ArrayList
这应该可以通过nginx访问您的Web应用程序。