
rosti/python基于debian:wheezy的Python 3.4.1 Docker镜像,集成Virtualenv及自动化部署脚本,旨在简化Python应用的部署流程。镜像预设标准化目录结构,自动处理依赖安装和应用初始化,最终通过Gunicorn启动WSGI应用,适用于快速部署Python 3.4.1开发的Web应用。
/srv根目录,分离应用代码(/srv/app)、虚拟环境(/srv/venv)和日志(/srv/logs)pip install -r /srv/app/requirements.txt安装应用依赖/srv/app/init.sh执行自定义启动逻辑(如数据库迁移、静态文件处理)适用于部署基于Python 3.4.1开发的WSGI应用(如Django、Flask),尤其适合需要标准化部署流程、自动依赖管理和自定义初始化逻辑的场景。
镜像使用/srv作为应用数据根目录,需通过卷挂载本地应用目录到此路径。关键子目录说明:
/srv/:应用数据根目录,需挂载本地应用目录/srv/app/:存放Python应用代码(必须包含requirements.txt和init.sh)/srv/venv/:Python 3.4.1虚拟环境目录(自动创建,无需手动配置)/srv/logs/:应用日志目录,包含Gunicorn访问日志(access.log)和错误日志(error.log)容器启动后按以下顺序执行操作:
pip install -r /srv/app/requirements.txt安装/srv/app目录下的依赖包/srv/app/init.sh执行自定义初始化逻辑(需用户提供,如数据库迁移)bash/srv/venv/bin/gunicorn -u app -g app -b 0.0.0.0:8000 -w $WORKERS --error-logfile /srv/logs/error.log --access-logfile /srv/logs/access.log --reload app
-w $WORKERS:工作进程数,通过环境变量WORKERS控制--reload:代码变更时自动重启(开发环境适用)app:指定WSGI入口为/srv/app/app.py中的application对象WORKERS:Gunicorn工作进程数,未指定时使用Gunicorn默认值基础部署命令
将本地应用目录/my/site挂载到容器/srv目录,启动应用:
bashdocker run -d --name=pyapp -p ***:8000 -v /my/site:/srv rosti/python:3.4.1
-p ***:8000:将容器8000端口映射到主机***端口-v /my/site:/srv:挂载本地应用目录到容器/srv初始化脚本示例(init.sh)
在/srv/app目录下创建init.sh(需添加执行权限),示例Django初始化逻辑:
bash#!/bin/bash # 激活虚拟环境 source /srv/venv/bin/activate # 进入应用目录 cd /srv/app # 执行数据库迁移 python manage.py migrate # 收集静态文件 python manage.py collectstatic --noinput
WSGI应用入口示例(app.py)
Gunicorn默认加载/srv/app/app.py中的application对象,Django应用示例:
pythonimport os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "triatlon.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application()

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