[英]How to setup nginx and django with docker-compose?
我在設置Django和Docker所需的所有依賴項時遇到了一種情況(docker-toolbox,docker-compose)。
我正在嘗試訪問我的網址時遇到錯誤http://192.168.99.100:8000/其中說502 Bad Gateway(nginx / 1.13.1) 。 對於這個錯誤,我真的不明白它來自哪里,因為這是我第一次在Docker上使用帶有nginx的Django。
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
命令行參數,缺少-b
標志。 需要使用-b
標志啟動它以與指定的地址綁定。 在你的情況下, gunicorn
將自己綁定到默認的127.0.0.1:8000
,這是其他容器無法訪問的。 因此,只需將web命令更改為以下內容:
command: bash -c 'python manage.py makemigrations && python manage.py migrate && gunicorn oqtor.wsgi -b 0.0.0.0:8000'
這應該可以通過nginx訪問您的Web應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.