如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
此容器镜像包含Python 3.4,作为构建Python 3.4应用程序的https://github.com/openshift/source-to-image%E5%9F%BA%E7%A1%80%E9%95%9C%E5%83%8F%E3%80%82%E7%94%A8%E6%88%B7%E5%8F%AF%E9%80%89%E6%8B%A9%E5%9F%BA%E4%BA%8ERHEL%E6%88%96CentOS%E7%9A%84%E6%9E%84%E5%BB%BA%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%82RHEL%E9%95%9C%E5%83%8F%E5%8F%AF%E5%9C%A8Red Hat Container Catalog获取,镜像名为registry.access.redhat.com/rhscl/python-34-rhel7;CentOS镜像可在https://hub.docker.com/r/centos/python-34-centos7/%E8%8E%B7%E5%8F%96%EF%BC%8C%E9%95%9C%E5%83%8F%E5%90%8D%E4%B8%BAcentos/python-34-centos7%E3%80%82%E7%94%9F%E6%88%90%E7%9A%84%E9%95%9C%E5%83%8F%E5%8F%AF%E4%BD%BF%E7%94%A8http://docker.io%E8%BF%90%E8%A1%8C%E3%80%82
Python 3.4容器镜像是构建和运行各种Python 3.4应用程序及框架的基础平台。Python是一种易于学习、功能强大的编程语言,具有高效的高级数据结构和简单而有效的面向对象编程方法。其优雅的语法、动态类型以及解释型特性,使其成为在多数平台的许多领域中进行脚本编写和快速应用开发的理想语言。
适用于需要使用Python 3.4版本开发、构建和运行应用程序的场景,包括但不限于:
使用独立的https://github.com/openshift/source-to-image%E6%9E%84%E5%BB%BA%E7%AE%80%E5%8D%95%E7%9A%84https://github.com/sclorg/s2i-python-container/tree/master/3.4/test/setup-test-app%E5%BA%94%E7%94%A8%EF%BC%8C%E7%84%B6%E5%90%8E%E7%94%A8http://docker.io%E8%BF%90%E8%A1%8C%E7%94%9F%E6%88%90%E7%9A%84%E9%95%9C%E5%83%8F%EF%BC%8C%E8%AF%B7%E6%89%A7%E8%A1%8C%EF%BC%9A
基于RHEL的镜像
bash$ s2i build https://github.com/sclorg/s2i-python-container.git --context-dir=3.4/test/setup-test-app/ rhscl/python-34-rhel7 python-sample-app $ docker run -p 8080:8080 python-sample-app
基于CentOS的镜像
bash$ s2i build https://github.com/sclorg/s2i-python-container.git --context-dir=3.4/test/setup-test-app/ centos/python-34-centos7 python-sample-app $ docker run -p 8080:8080 python-sample-app
访问应用
bash$ curl 127.0.0.1:8080
可在源代码仓库的.s2i/environment文件中以键值对形式设置以下环境变量:
用于从脚本文件运行应用。应指定脚本文件路径(默认值为app.sh,若设为null则不使用默认值),该脚本将被执行以启动应用。
用于从Python脚本运行应用。应指定Python文件路径(默认值为app.py,若设为null则不使用默认值),该文件将被传递给Python解释器以启动应用。
用于通过Gunicorn运行应用,如此处所述。此变量指定WSGI可调用对象,格式为MODULE_NAME:VARIABLE_NAME,其中MODULE_NAME是模块的完整点分路径,VARIABLE_NAME是指定模块中的WSGI可调用对象。若未指定,Gunicorn将查找名为application的WSGI可调用对象。
若未提供APP_MODULE,run脚本将在项目中查找wsgi.py文件并使用(如果存在)。
若使用setup.py安装应用,MODULE_NAME部分可从中读取。示例可参见https://github.com/sclorg/s2i-python-container/tree/master/3.4/test/setup-test-app%E3%80%82
此变量可用于指定包含待运行应用的子目录。该目录需包含wsgi.py(用于Gunicorn)或manage.py(用于Django)。
若未提供APP_HOME,assemble和run脚本将使用应用的根目录。
指向有效的Python文件路径,该文件包含Gunicorn配置。
设为非空值可阻止运行生成的镜像时执行manage.py migrate。仅影响Django项目。有关在OpenShift环境中如何/何时运行数据库迁移的建议,参见OpenShift博客上的Django文章的“处理数据库迁移”部分。重要的是,注意从两个或多个Pod运行数据库迁移可能会损坏数据库。
设为非空值可阻止构建期间执行manage.py collectstatic。仅影响Django项目。
设为非空值可跳过setup.py脚本的处理(如果在requirements.txt中使用-e .触发其处理,或不希望应用安装到site-packages目录)。
设为非空值可使用https://github.com/kennethreitz/pipenv%EF%BC%88%E9%AB%98%E7%BA%A7Python%E6%89%93%E5%8C%85%E5%B7%A5%E5%85%B7%EF%BC%89%E7%AE%A1%E7%90%86%E5%BA%94%E7%94%A8%E4%BE%9D%E8%B5%96%E3%80%82%E4%BB%85%E5%BD%93%E9%A1%B9%E7%9B%AE%E5%8C%85%E5%90%AB%E6%A0%BC%E5%BC%8F%E6%AD%A3%E7%A1%AE%E7%9A%84Pipfile%E5%92%8CPipfile.lock%E6%97%B6%E4%BD%BF%E7%94%A8%E3%80%82%EF%BC%88%E9%9A%90%E5%90%AB%60UPGRADE_PIP_TO_LATEST%60%E4%BB%A5%E6%BB%A1%E8%B6%B3Pipenv%E7%9A%84%E4%BE%9D%E8%B5%96%E3%80%82%EF%BC%89
设置此变量可使用自定义索引URL或镜像在构建过程中下载所需包。仅影响requirements.txt中列出的包。Pipenv忽略此变量。
设为非空值可在安装任何Python包前将pip程序及相关Python包(setuptools和wheel)升级到最新版本。若未设置,将使用平台为所用Python版本包含的默认版本。
设置此变量可更改工作进程数的默认设置。默认情况下,设置为可用核心数乘以2,上限为12。
现有Python项目的仓库无需任何更改。但以下文件若存在,将影响构建过程:
需用pip安装的依赖列表。格式参见此处。
requirements.txt的替代方案,目前处于积极设计和开发中,文档参见https://github.com/pypa/pipfile%E3%80%82%E9%9C%80%E8%AE%BE%E7%BD%AE%60ENABLE_PIPENV%60%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E4%B8%BAtrue%E4%BB%A5%E5%A4%84%E7%90%86%E6%AD%A4%E6%96%87%E4%BB%B6%E3%80%82
配置项目的各个方面,包括依赖安装,文档参见此处。多数项目只需使用requirements.txt或Pipfile即可。设置DISABLE_SETUP_PY_PROCESSING环境变量为true可跳过此文件的处理。
s2i-python生成的容器镜像按以下优先级顺序运行项目:
若安装了Gunicorn(通过requirements.txt或setup.py的install_requires部分列出),则使用Gunicorn WSGI HTTP服务器提供应用服务。
若仓库中存在wsgi.py文件,将用作应用的入口点。可通过APP_MODULE环境变量覆盖。Django项目默认包含此文件。
若requirements中同时包含Django和Gunicorn,Django项目将自动使用Gunicorn提供服务。
若requirements中包含Django但未包含Gunicorn,则使用Django的开发Web服务器提供应用服务。不建议用于生产环境。
当通过APP_FILE环境变量指定Python脚本路径(默认若存在app.py文件)时使用。脚本将传递给Python解释器以启动应用。
最通用的应用启动方式。当通过APP_SCRIPT环境变量指定可执行脚本路径(默认若存在app.sh文件)时使用。脚本将直接执行以启动应用。
若使用Django,热部署默认生效。
若使用Gunicorn并需启用热部署,确保仓库中包含Gunicorn配置文件,且reload选项设为true。确保通过APP_CONFIG环境变量指定配置文件。
要修改运行中容器的源代码,使用Docker的exec命令:
bashdocker exec -it <容器ID> /bin/bash
进入运行中的容器后,当前目录设为/opt/app-root/src,即源代码所在位置。
Dockerfile及其他源代码可在https://github.com/sclorg/s2i-python-container%E8%8E%B7%E5%8F%96%E3%80%82%E8%AF%A5%E4%BB%93%E5%BA%93%E4%B8%AD%E8%BF%98%E5%8F%AF%E6%89%BE%E5%88%B0%E5%85%B6%E4%BB%96%E7%89%88%E6%9C%AC%E7%9A%84Python%E7%8E%AF%E5%A2%83Dockerfile%E3%80%82CentOS%E7%9A%84Dockerfile%E5%90%8D%E4%B8%BADockerfile%EF%BC%8CRHEL%E7%9A%84Dockerfile%E5%90%8D%E4%B8%BADockerfile.rhel7%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务