【发布时间】:2018-11-13 21:54:56
【问题描述】:
我是Docker 的新手,并设置docker 以使用gunicorn 和nginx 运行Django 应用程序
我的配置文件是
docker-compose.yml
version: '3'
services:
nginx:
image: nginx:latest
container_name: "myapp-nginx"
ports:
- "10080:80"
- "10443:43"
volumes:
- .:/app
- ./config/nginx:/etc/nginx/conf.d
- ./static_cdn:/static
depends_on:
- web
web:
build: .
container_name: "myapp-dev"
command: ./start.sh
volumes:
- .:/app
- ./static_cdn:/static
ports:
- "9010"
depends_on:
- db
expose:
- "9010"
db:
image: postgres
container_name: "myapp-db"
config/nginx/nginx.conf
upstream web {
ip_hash;
server web:9010;
}
server {
location /static {
autoindex on;
alias /static/;
}
location / {
proxy_pass http://web;
}
listen 9010;
server_name localhost;
}
start.sh
#!/usr/bin/env bash
# Start Gunicorn processes
echo --: Starting application build
echo --: Creating migration
python3 manage.py makemigrations
echo ------: makemigrations complete
echo --: Running migration
python3 manage.py migrate
echo ------: migrate complete
echo --: Running collectstatic
python3 manage.py collectstatic <<<yes
echo ------: collectstatic complete
echo --: Starting Gunicorn.
gunicorn koober.wsgi:application \
--bind 0.0.0.0:9010 \
--workers 3
使用 docker 运行
docker-compose up --build
运行成功,输出为
这里 gunicorn 在0.0.0.0:9010 成功启动。但无法使用浏览器访问应用程序。
我在浏览器中尝试了以下地址
- 127.0.0.1:9010
- 127.0.0.1:10080
- 127.0.0.1
- 本地主机:9010
- 本地主机:10080
- 本地主机
- 0.0.0.0:9010
- 0.0.0.0:10080
- 0.0.0.0
但它们都不起作用。
编辑 2:
docker ps -a的输出
【问题讨论】: