本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
该容器镜像包含Python 3.6,作为构建Python 3.6应用的S2I基础镜像。用户可选择基于RHEL或CentOS的构建器镜像:RHEL镜像可在Red Hat Container Catalog获取,CentOS镜像可在Docker Hub获取,Fedora镜像可在Fedora Registry获取。生成的镜像可使用podman或docker运行。
注意:本文档示例中使用
podman命令,所有此类命令均可替换为docker,参数保持不变。
Python 3.6容器镜像是构建和运行各类Python 3.6应用及框架的基础平台。Python是一种易于学***、功能强大的编程语言,具有高效的高级数据结构和简洁有效的面向对象编程方法。其优雅的语法、动态类型及解释型特性,使其成为多数平台上众多领域脚本编写和快速应用开发的理想选择。
该容器镜像包含npm工具(详见基础镜像仓库),用户可使用其为Web应用安装JavaScript模块。镜像中包含的npm或nodejs版本不做保证,版本可能随时变更,nodejs仅为支持npm功能而包含。
以下示例基于OpenShift中支持的python:3.6镜像流标签。
构建简单的python-sample-app应用可通过以下命令实现:
oc new-app python:3.6~[***] --context-dir=3.6/test/setup-test-app/
在已安装S2I工具的系统上,可通过以下命令构建应用:
$ s2i build [***] --context-dir=3.6/test/setup-test-app/ <image_name> python-sample-app
其中<image_name>为从RHEL、CentOS或Fedora仓库下载或从源码构建的s2i-python镜像,例如ubi8/python-36、centos/python-36-centos7或f31/python3。
$ curl 127.0.0.1:8080
可在源代码仓库的.s2i/environment文件中以键值对形式设置以下环境变量:
用于从脚本文件运行应用。应指定脚本文件路径(默认值为app.sh,设为null可取消),该脚本将用于启动应用。
用于从Python脚本运行应用。应指定Python文件路径(默认值为app.py,设为null可取消),该文件将被传递给Python解释器以启动应用。
用于通过Gunicorn运行应用,详见Gunicorn文档。该变量指定WSGI可调用对象,格式为MODULE_NAME:VARIABLE_NAME,其中MODULE_NAME为模块的完整路径,VARIABLE_NAME为指定模块中的WSGI可调用对象。若未指定,Gunicorn将查找名为application的WSGI可调用对象。
若未提供APP_MODULE,run脚本将在项目中查找wsgi.py文件并使用(若存在)。
用于指定应用所在的子目录。该目录需包含wsgi.py(用于Gunicorn)或manage.py(用于Django)。若未提供,assemble和run脚本将使用应用根目录。
指向有效的Python文件路径,该文件包含Gunicorn配置。
设为非空值可禁止在运行生成的镜像时执行manage.py migrate。仅影响Django项目。关于在OpenShift环境中如何/何时运行数据库迁移,详见OpenShift博客的Django应用迁移文章,尤其注意:从两个或多个Pod运行数据库迁移可能导致数据库损坏。
设为非空值可禁止在构建过程中执行manage.py collectstatic。仅影响Django项目。
设为非空值可跳过setup.py脚本处理,适用于在requirements.txt中使用-e .触发处理或不希望应用安装到site-packages目录的场景。
设为非空值可使用Pipenv(高级Python打包工具)管理应用依赖。需项目中包含格式正确的Pipfile和Pipfile.lock。
与ENABLE_PIPENV一起使用,指定Pipenv版本。若未设置,将安装PyPI上的最新稳定版。例如PIN_PIPENV_VERSION=2018.11.26将安装pipenv==2018.11.26。
设为非空值可使用micropipenv(轻量级pip包装器),支持requirements.txt、Pipenv和Poetry锁文件,或转换为pip-tools兼容输出。仅适用于Python 3镜像。
设为非空值可使用init包装器,适用于无法回收僵尸进程的服务器(如Django开发服务器或Tornado)。可与APP_SCRIPT或APP_FILE一起使用,不适用于通过APP_MODULE使用的Gunicorn(Gunicorn可正确回收僵尸进程)。
设置自定义索引URL或镜像,用于在构建过程中下载依赖包(影响requirements.txt中列出的包)。也影响pipenv、micropipenv的安装及容器中pip的更新,若自定义索引中未找到,容器将尝试从上游PyPI安装/更新。
设为非空值可在安装任何Python包前将pip及相关Python包(setuptools、wheel)升级到最新版本。若未设置,将使用平台为当前Python版本提供的默认版本。
用于修改工作进程数的默认设置。默认值为可用核心数×2(上限为12)。
现有Python项目仓库无需修改,但以下文件将影响构建过程:
使用pip安装的依赖列表,格式详见pip文档。
requirements.txt的替代方案,项目设计与开发详见Pipfile文档。需设置ENABLE_PIPENV环境变量以处理该文件。
配置项目各方面(包括依赖安装),详见打包文档。多数项目使用requirements.txt或Pipfile即可。设DISABLE_SETUP_PY_PROCESSING环境变量为true可跳过处理该文件。
s2i-python生成的容器镜像按以下优先级顺序执行项目:
若安装了Gunicorn(通过requirements.txt或setup.py的install_requires部分列出),将使用Gunicorn WSGI HTTP服务器提供应用服务。
若仓库中存在wsgi.py文件(Django项目默认包含),将作为应用入口点,可通过APP_MODULE环境变量覆盖。
若依赖中同时包含Django和Gunicorn,Django项目将自动通过Gunicorn提供服务。
若依赖中包含Django但未包含Gunicorn,将使用Django开发服务器提供应用服务。不推荐用于生产环境。
通过APP_FILE环境变量指定Python脚本路径(默认查找app.py),该脚本将被传递给Python解释器以启动应用。
通过APP_SCRIPT环境变量指定可执行脚本路径(默认查找app.sh),该脚本将直接执行以启动应用。
Django应用默认支持热部署。
需在仓库中提供包含reload选项设为true的Gunicorn配置文件,并通过APP_CONFIG环境变量指定该配置文件。
使用podman(或docker)的exec命令进入容器:
podman exec -it <CONTAINER_ID> /bin/bash
进入容器后,当前目录为/opt/app-root/src(源码所在目录)。
Dockerfile及其他源码可在GitHub仓库获取。该仓库还包含其他版本Python环境的Dockerfile:CentOS的Dockerfile名为Dockerfile,RHEL7的为Dockerfile.rhel7,RHEL8的为Dockerfile.rhel8,Fedora的为Dockerfile.fedora。
免费版仅支持 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