
twobulls/gunicorn-bootstrap本Docker镜像为预配置的启动镜像,集成了Gunicorn(Python WSGI HTTP服务器)和Nginx(高性能反向代理服务器),旨在简化Python Web应用的部署流程。通过预配置的服务协同机制,实现Gunicorn处理应用逻辑与Nginx处理静态资源/反向代理的高效组合,帮助开发者快速搭建稳定、高性能的Web服务环境。
127.0.0.1:8000)wsgi:app)bashdocker pull [镜像仓库地址]/bootstrap-gunicorn-nginx:latest
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
APP_MODULE | Gunicorn应用入口模块 | wsgi:app |
GUNICORN_WORKERS | Gunicorn工作进程数 | 4(2×CPU核心数) |
GUNICORN_BIND | Gunicorn绑定地址:端口 | 127.0.0.1:8000 |
GUNICORN_TIMEOUT | 请求超时时间(秒) | 30 |
NGINX_PORT | Nginx对外暴露端口 | 80 |
STATIC_ROOT | 静态文件目录(Nginx映射) | /app/static |
假设应用代码位于本地./app目录,入口模块为main:app(Flask应用):
bashdocker run -d \ -p 8080:80 \ # 宿主机8080端口映射容器Nginx端口(默认80) -v $(pwd)/app:/app \ # 挂载应用代码到容器工作目录 -e APP_MODULE=main:app \ # 指定应用入口 -e GUNICORN_WORKERS=6 \ # 自定义工作进程数 --name python-web-app \ [镜像仓库地址]/bootstrap-gunicorn-nginx:latest
创建docker-compose.yml:
yamlversion: '3.8' services: web: image: [镜像仓库地址]/bootstrap-gunicorn-nginx:latest ports: - "80:80" # Nginx对外端口 volumes: - ./app:/app # 应用代码目录 - ./nginx.conf:/etc/nginx/conf.d/default.conf # 自定义Nginx配置(可选) environment: - APP_MODULE=wsgi:application # Django应用通常使用wsgi:application - GUNICORN_BIND=127.0.0.1:8000 - STATIC_ROOT=/app/staticfiles # Django静态文件收集目录 restart: unless-stopped
启动服务:
bashdocker-compose up -d
如需修改Nginx反向代理规则或静态资源处理逻辑,可通过挂载外部配置文件覆盖默认配置:
bash# 本地nginx.conf示例(自定义静态文件缓存策略) server { listen 80; location /static/ { alias /app/static/; expires 1d; # 静态文件缓存1天 } location / { proxy_pass [***] proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } # 启动时挂载配置文件 docker run -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf ...
wsgi.py或指定入口模块)STATIC_ROOT指定目录,或通过Nginx配置自定义路径GUNICORN_WORKERS(通常设为CPU核心数×2+1)

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务