本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
本容器镜像为 Python 3.5 应用提供 S2I(源码构建工具)基础镜像,支持基于 RHEL 或 CentOS 的构建环境。用户可根据需求选择对应系统的镜像,具体来源如下:
registry.access.redhat.com/rhscl/python-35-rhel7registry.access.redhat.com/rhel8/python-35centos/python-35-centos7构建后的镜像可通过 Docker 运行。
Python 3.5 容器镜像作为基础平台,用于构建和运行各类 Python 3.5 应用及框架。Python 语言具有易学性、强大的编程能力,具备高效的高级数据结构、简洁的面向对象编程方法,其优雅的语法、动态类型及解释型特性,使其成为多数平台下脚本编写和快速应用开发的理想选择。
容器内置 npm 工具,方便用户为 Web 应用安装 JavaScript 模块。注意:镜像不保证 npm 或 nodejs 的具体版本,版本可能随时变更,nodejs 仅为支持 npm 运行而包含。
通过独立 S2I 工具构建示例应用(如 python-sample-app),并使用 Docker 运行生成的镜像,步骤如下:
# 构建应用镜像 s2i build [***] --context-dir=3.5/test/setup-test-app/ rhscl/python-35-rhel7 python-sample-app # 运行镜像(映射 8080 端口) docker run -p 8080:8080 python-sample-app
# 构建应用镜像 s2i build [***] --context-dir=3.5/test/setup-test-app/ rhel8/python-35 python-sample-app # 运行镜像(映射 8080 端口) docker run -p 8080:8080 python-sample-app
# 构建应用镜像 s2i build [***] --context-dir=3.5/test/setup-test-app/ centos/python-35-centos7 python-sample-app # 运行镜像(映射 8080 端口) docker run -p 8080:8080 python-sample-app
构建并运行后,通过以下命令访问应用:
curl 127.0.0.1:8080
可在源码仓库的 .s2i/environment 文件中定义键值对,设置以下环境变量:
APP_SCRIPT指定启动应用的脚本文件路径。默认值为 app.sh(设为 null 可取消默认),脚本将直接执行以启动应用。
APP_FILE指定启动应用的 Python 脚本路径。默认值为 app.py(设为 null 可取消默认),脚本将通过 Python 解释器执行。
APP_MODULE用于通过 Gunicorn 启动应用,格式为 MODULE_NAME:VARIABLE_NAME(MODULE_NAME 为模块路径,VARIABLE_NAME 为 WSGI 可调用对象)。若未指定,Gunicorn 默认查找 application 可调用对象;若未设置 APP_MODULE,构建脚本会检查项目中是否存在 wsgi.py 并使用。
若通过 setup.py 安装应用,MODULE_NAME 可从该文件读取(示例见 setup-test-app)。
APP_HOME指定应用所在的子目录路径,该目录需包含 wsgi.py(Gunicorn)或 manage.py(Django)。未设置时,构建和运行脚本使用项目根目录。
APP_CONFIGGunicorn 配置文件的路径,需为有效的 Python 文件(配置格式见 Gunicorn 文档)。
DISABLE_MIGRATE设为非空值可禁用容器运行时执行 manage.py migrate(仅影响 Django 项目)。数据库迁移建议参考 OpenShift 博客文章,避免多 pod 同时执行迁移导致数据库损坏。
DISABLE_COLLECTSTATIC设为非空值可禁用构建过程中执行 manage.py collectstatic(仅影响 Django 项目)。
DISABLE_SETUP_PY_PROCESSING设为非空值可跳过 setup.py 处理(适用于通过 requirements.txt 或 -e . 管理依赖的场景)。
ENABLE_PIPENV设为非空值可使用 Pipenv 管理依赖(需项目包含 Pipfile 和 Pipfile.lock)。启用后会自动升级 pip 至最新版(以满足 Pipenv 依赖)。
PIP_INDEX_URL指定 pip 安装依赖时的自定义索引 URL 或镜像(仅影响 requirements.txt 中的依赖;Pipenv 忽略此变量)。
UPGRADE_PIP_TO_LATEST设为非空值可在安装依赖前升级 pip、setuptools 和 wheel 至最新版。未设置时使用平台默认版本。
WEB_CONCURRENCY调整 Gunicorn 的 worker 数量。默认值为 CPU 核心数 × 2(上限 12)。
现有 Python 项目无需修改即可使用,但以下文件会影响构建行为:
requirements.txt通过 pip 安装的依赖列表,格式见 pip 文档。
Pipfile替代 requirements.txt 的依赖管理文件(设计与开发见 Pipfile 文档)。需设置 ENABLE_PIPENV 环境变量以启用处理。
setup.py配置项目元数据及依赖安装(见 Python 打包文档)。多数场景下,requirements.txt 或 Pipfile 已足够;设 DISABLE_SETUP_PY_PROCESSING 可跳过处理。
S2I 构建的容器镜像按以下优先级执行应用:
若依赖中安装了 Gunicorn(通过 requirements.txt 或 setup.py 的 install_requires 指定),则使用 Gunicorn 作为 WSGI 服务器。
wsgi.py(Django 项目默认包含),则以此为入口;可通过 APP_MODULE 覆盖。若依赖中包含 Django 但未安装 Gunicorn,则使用 Django 开发服务器(不建议生产环境使用)。
若指定 APP_FILE 或项目存在 app.py,则通过 Python 解释器执行该脚本。
若指定 APP_SCRIPT 或项目存在 app.sh,则直接执行该脚本。
默认支持热部署,无需额外配置。
需在项目中添加 Gunicorn 配置文件,设置 reload 选项为 true,并通过 APP_CONFIG 环境变量指定配置文件路径。
通过 Docker exec 命令进入容器修改源码:
docker exec -it <容器ID> /bin/bash
进入容器后,当前目录为 /opt/app-root/src(源码存放路径)。
Dockerfile,RHEL7 为 Dockerfile.rhel7,RHEL8 为 Dockerfile.rhel8。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429