如何用docker-compose设置nginx和django?
我在设置Django时遇到了一些情况,并且需要使用Docker(docker-toolbox,docker-compose)所需的所有依赖项。
我遇到一个错误,而我试图访问我的urlhttp://192.168.99.100:8000/其中说502坏门户(nginx / 1.13.1) 。 由于这是我第一次在Docker上使用nginx的Django,所以对于这个错误我不太明白。
这里是Github: https : //github.com/NuriddinK/Django-Docker
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; }
有什么我做错了吗?
这里的问题是与gunicorn
命令行参数,缺less-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'
这应该使你的networking应用程序可以通过nginx访问。
- Django模式不识别“QueryString”BaseObject的外键
- 如何在Docker上的页面重新加载后更新修改?
- NGINX为Django App提供静态文件
- Docker化已经存在的应用程序和数据库
- Docker与多个Dockfiles和图像组成(Django + Angular)
- 在Heroku上部署Django API + React应用程序
- docker-compoes.yml设置与Django + Gunicorn + NGINX不适用于`docker-compose up`
- 使用Docker在Django App中编译和运行不受信任的代码
- 初学者Docker-Compose&Django