mecodia/python-base本镜像为 mecodia GmbH 内部 Django 项目提供标准化的容器化基础运行环境,旨在简化开发、测试及生产环境的部署流程,确保各环境间的一致性。镜像基于官方 Python 镜像构建,预集成 Django 运行所需的核心依赖、系统工具及最佳实践配置,可直接作为项目镜像的基础层使用。
django、djangorestframework 等),避免版本冲突。libpq-dev 用于 PostgreSQL 连接、zlib1g-dev 用于压缩处理等),减少构建阶段依赖安装步骤。PYTHONDONTWRITEBYTECODE 禁用 .pyc 文件生成)以提升性能。pip、pip-tools 用于依赖管理,gunicorn/uWSGI 作为 WSGI 服务器,支持生产环境部署。main、3.9-slim)明确标识 Python 版本及镜像迭代,便于版本追溯和项目兼容性管理。从 Docker Hub 拉取最新版本镜像:
bashdocker pull mecodia/python-base:main
如需指定版本(如 Python 3.10 slim 版本):
bashdocker pull mecodia/python-base:3.10-slim
bashdocker run -it --rm \ -v $(pwd):/app \ # 挂载本地项目代码到容器内 /app 目录 -p 8000:8000 \ # 映射容器 8000 端口到本地(Django 开发服务器默认端口) -e DJANGO_SETTINGS_MODULE=myproject.settings.dev \ # 指定 Django 配置文件 mecodia/python-base:main \ python manage.py runserver 0.0.0.0:8000 # 启动 Django 开发服务器
创建 docker-compose.yml 文件,集成数据库、静态文件服务等依赖:
yamlversion: '3.8' services: django-app: image: mecodia/python-base:main restart: always volumes: - ./app:/app # 项目代码目录 - static_volume:/app/static # 静态文件持久化 - media_volume:/app/media # 媒体文件持久化 environment: - DJANGO_SETTINGS_MODULE=myproject.settings.prod - DATABASE_URL=postgres://user:password@db:5432/mydb - SECRET_KEY=${SECRET_KEY} # 从环境变量注入敏感配置 - DEBUG=False depends_on: - db ports: - "8000:8000" # 暴露 WSGI 服务端口 db: image: postgres:14 volumes: - postgres_data:/var/lib/postgresql/data/ environment: - POSTGRES_USER=user - POSTGRES_PASSWORD=password - POSTGRES_DB=mydb volumes: postgres_data: static_volume: media_volume:
镜像支持通过环境变量自定义运行参数,常用配置如下:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
PYTHONUNBUFFERED | 禁用 Python 输出缓冲(便于日志实时查看) | 1(启用) |
DJANGO_SETTINGS_MODULE | 指定 Django 配置模块路径 | myproject.settings |
DEBUG | Django DEBUG 模式开关 | False(生产环境) |
SECRET_KEY | Django 安全密钥(必填,生产环境需自定义) | 无(需用户提供) |
DATABASE_URL | 数据库连接 URL(如 PostgreSQL/MySQL) | 无(需用户提供) |
GUNICORN_WORKERS | Gunicorn 工作进程数 | 4(2×CPU核心数) |
如需在基础镜像上添加项目特定依赖,可创建 Dockerfile 如下:
dockerfile# 基于 mecodia 基础镜像构建 FROM mecodia/python-base:main # 设置工作目录 WORKDIR /app # 复制项目依赖文件并安装 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # 复制项目代码 COPY . . # 运行启动脚本(如收集静态文件、数据库迁移) CMD ["./scripts/start.sh"]
SECRET_KEY 等敏感配置通过安全方式注入(如 Docker Secrets、Kubernetes Secrets),避免硬编码。3.10-slim)对应特定 Python 版本,使用前请确认项目兼容的 Python 版本。




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