轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
moonbuggy2000/python-musl-wheels
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

python-musl-wheels Docker 镜像下载 - 轩辕镜像

python-musl-wheels 镜像详细信息和使用指南

python-musl-wheels 镜像标签列表和版本信息

python-musl-wheels 镜像拉取命令和加速下载

python-musl-wheels 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

python-musl-wheels
moonbuggy2000/python-musl-wheels

python-musl-wheels 镜像详细信息

python-musl-wheels 镜像标签列表

python-musl-wheels 镜像使用说明

python-musl-wheels 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

在Alpine Linux中为多种CPU架构构建的Python musl wheel,包含共享库,用于加速多阶段Docker构建中的Python模块安装,解决无预构建musl wheel导致的构建缓慢问题。
0 次下载activemoonbuggy2000镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

python-musl-wheels 镜像详细说明

python-musl-wheels 使用指南

python-musl-wheels 配置说明

python-musl-wheels 官方文档

Python musl wheel 镜像

在Docker容器中构建的Python musl wheel,用于导入多阶段构建。

  • 基本原理
  • Wheel类型
  • 使用方法
    • 使用Docker镜像
      • 多阶段构建示例
  • 构建wheel镜像
    • 默认构建
    • 构建环境
    • 构建示例
    • 添加新wheel
  • 链接

基本原理

许多Python模块目前没有预构建的musl wheel,特别是对于非x64架构。这会导致Docker中的Python构建缓慢,因为当镜像构建时,没有可用wheel的模块需要从源代码构建。

本项目生成的Docker镜像包含wheel文件,镜像标签指定了模块和Python版本(旧镜像标签中还包含架构)。这些镜像旨在用作Docker多阶段构建的一部分,为Python阶段提供预构建的wheel。镜像包含标签中指定的模块及其所有依赖的wheel。

[!NOTE] 这些镜像主要用于我自己的Docker镜像,避免每次对Python镜像进行缓存破坏更改时都需要编译模块。此仓库不会是全面的wheel集合。

Wheel类型

提供两种不同类型的wheel:

  • 包含共享库的wheel

    这些wheel由pypa/auditwheel处理,应符合相关PEP 656规范,具有最高的可移植性。

    包含这些wheel的Docker镜像推送到moonbuggy2000/python-musl-wheels,wheel文件名中包含-musllinux。

  • 不包含共享库的wheel

    这些wheel通过依赖系统库而非捆绑可能重复的共享库,生成更小的最终Docker镜像。但需要系统库存在且与wheel构建时依赖的库兼容,因此可移植性较低。

    包含这些wheel的Docker镜像推送到moonbuggy2000/python-alpine-wheels,wheel文件名中包含-linux。

当前wheel镜像基于Alpine 3.19和musl 1.2构建,部分musl 1.1的wheel可在wheels/目录中找到。

[!NOTE] 若PyPi上已有某架构的预构建wheel,“不包含共享库”的镜像可能会使用这些wheel而非自行构建。因此,特别是对于amd64和arm64架构,部分“python-alpine-wheels”镜像中的wheel可能实际包含共享库。

本仓库的目的是填补PyPi预构建wheel在更多架构上的空白。构建不需要的wheel会扩大这一差距,且不包含共享库节省的磁盘空间有限,难以证明构建时间的合理性。

使用方法

本仓库的wheels/目录中包含可直接使用的wheel文件。此外,Docker镜像可作为其他镜像构建过程的一部分拉取使用。

对于使用SSL库的模块,wheels/目录中的wheel文件默认应为OpenSSL构建版本。LibreSSL构建版本通常可通过Docker镜像获取。

使用Docker镜像

较新的构建仅为每个wheel推送单个多平台标签,格式如下:

moonbuggy2000/python-musl-wheels:<module><module_version>-py<python_version>

示例:

moonbuggy2000/python-musl-wheels:***graphy45.0.1-py3.8

旧版本构建为每个架构推送独立镜像,格式如下:

moonbuggy2000/python-musl-wheels:<module><module_version>-py<python_version>-<arch>

示例:

moonbuggy2000/python-musl-wheels:***graphy3.4.8-py3.8-armv7

多阶段构建示例

ARG PYTHON_VERSION="3.8"

# 从多平台镜像获取***graphy模块
FROM --platform="${TARGETPLATFORM}" \
  "moonbuggy2000/python-musl-wheels:***graphy45.0.1-py${PYTHON_VERSION}" \
  AS mod_***graphy

# 或从旧版单架构镜像获取
FROM "moonbuggy2000/python-musl-wheels:***graphy3.4.8-py${PYTHON_VERSION}-armv7" \
  AS mod_***graphy

# 获取其他模块
FROM --platform="${TARGETPLATFORM}" \
  "moonbuggy2000/python-musl-wheels:some-other-module1.0.0-py${PYTHON_VERSION}" \
  AS mod_some_other

# 构建Python应用镜像
FROM "arm32v7/python:${PYTHON_VERSION}"

WORKDIR "/wheels"

COPY --from=mod_***graphy / ./
COPY --from=mod_some_other / ./

WORKDIR "/app"

# .. 设置虚拟环境等 ..

RUN python3 -m pip install /wheels/*
# 或
RUN python3 -m pip install --find-links /wheels/ ***graphy some_other_module

# .. 其他步骤 ..

构建wheel镜像

./build.sh <module><module_version>-py<python_version>-<arch>

除./build.sh <module>外,其他参数均为可选。<module>可包含-openssl或-libressl后缀(如适用)。

目前,-libressl构建不支持s390x架构,因为Alpine包仓库中没有libressl-dev。

若未提供<module_version>,将构建PyPi上的最新版本。若省略<python_version>,将使用Docker Hub官方Python仓库的最新版本。若未指定<arch>,将构建所有可能的架构。

要为所有默认Python版本(在_build.sh_中定义)构建模块,可使用pyall作为py<python_version>。

可通过向_build.sh_传递多个参数一次构建多个模块。

默认构建

_build.sh_中内置了一些默认模块和Python版本,可通过特殊构建参数使用:

  • all - 为所有默认Python版本构建所有默认模块
  • core - 为所有默认Python版本构建核心默认模块(适用于其他模块常用的依赖,确保在all构建时可用)
  • check - 检查PyPi上是否有默认模块的新版本,然后退出不开始构建
  • update - 与check类似,但继续为所有默认Python版本构建新版本

这些构建应作为_build.sh_的唯一参数独立执行。它们将构建包含和不包含共享库的两种wheel。

远程仓库的数据在本地缓存24小时,因此check的输出在构建和推送模块后不会立即变化。必要时可使用CLEAN_CACHE(见下文)清除缓存。

构建环境

构建脚本使用环境变量确定某些行为,特别是与Docker Hub推拉相关的操作。

最常用的环境变量如下:

变量默认值描述
DO_PUSHfalse推送到Docker Hub
NO_BUILDfalse跳过Docker构建阶段
NOOPfalse空运行,不构建或推送
NO_SELF_PULLfalse不从Docker Hub或本地拉取现有匹配wheel
NO_PULL_WHEELSfalse不从Docker Hub或本地拉取任何wheel
WHEELS_FORCE_PULLfalse即使本地存在,也从Docker Hub拉取现有匹配wheel
BUILD_NO_CACHEfalse构建时不使用缓存层
NO_BINARYfalse不使用现有二进制wheel,强制构建
SHAREDfalse构建包含共享库的wheel
NO_SHAREDfalse构建不包含共享库的wheel
BUILD_BOTHfalse同时构建两种类型的wheel
CLEAN_CACHEfalse清除本地缓存并为_all_/core/check/_update_拉取新数据
PYPI_INDEXhttps://pypi.org/simplepip的索引URL,适用于运行缓存代理的情况

这些变量的命名目前不够清晰一致,未来可能会调整。

默认行为是构建包含共享库的wheel,将wheel输出到主机的wheels/目录,且不推送任何镜像到Docker Hub。

构建示例

# 最新***graphy,OpenSSL,最新Python,所有架构
./build.sh ***graphy
# 或
./build.sh ***graphy-openssl

# 最新***graphy,LibreSSL,最新Python,amd64架构
# 推送到Docker仓库
DO_PUSH=1 ./build.sh ***graphy-libreSSL-amd64

# ***graphy 36.0.1,OpenSSL,所有默认Python版本,amd64架构
# 不捆绑共享库
NO_SHARED=1 ./build.sh ***graphy-openssl36.0.1-pyall-amd64

# 同时构建多个模块
./build.sh ***graphy-openssl-py3.9 cffi1.15.1-armv7 pycparser toml-pyall

# 所有默认模块,所有默认Python版本,所有架构
# 从源码构建,同时构建两种类型的wheel
# 并推送到Docker仓库
DO_PUSH=1 ./build.sh all

添加新wheel

构建系统通常能够使用适当格式的镜像标签构建任何请求的wheel。

默认情况下,wheel在Docker容器中通过以下命令构建:python3 -m pip wheel -w "${WHEELS_DIR}" "${MODULE_NAME}==${MODULE_VERSION}"

scripts/<module_name>.sh

特定wheel所需的默认构建设置之外的任何配置,可通过可选的scripts/<module_name>.sh文件(与镜像标签中的<module_name>匹配)处理。这是安装Python/pip不会安装的构建依赖(如通过apk、make或wget)的适当位置。

若存在此文件,mod_build函数将在Dockerfile中的pip wheel命令之前立即调用。

可通过在scripts/<module_name>.sh文件中放置自定义命令并设置WHEEL_BUILT_IN_SCRIPT来覆盖Dockerfile中的pip wheel命令,以防止执行默认命令。

mod_depends函数在检出后由构建系统调用,从本仓库获取任何所需模块(若未找到则回退到PyPi),这些依赖将在Dockerfile开始构建模块前安装。

示例可参见scripts/paramiko.sh。

链接

GitHub: <[***]>

Docker Hub:

  • <[***]>
  • <[***]>

相关项目:

  • <[***]>
查看更多 python-musl-wheels 相关镜像 →
python logo
python
by library
官方
Python是一种解释型、交互式、面向对象的开源编程语言,其设计理念强调代码的可读性与简洁性,支持多种编程范式,凭借丰富的标准库和第三方库,广泛应用于Web开发、数据分析、人工智能、科学计算、自动化脚本等众多领域,拥有活跃的全球开发者社区,是兼具易用性与强大功能的高效编程工具。
102761B+ pulls
上次更新:2 天前
bellsoft/liberica-openjdk-alpine-musl logo
bellsoft/liberica-openjdk-alpine-musl
by BellSoft
认证
Liberica是BellSoft提供的100%开源Java实现,用于运行和开发Java应用程序。
271M+ pulls
上次更新:3 天前
stagex/musl logo
stagex/musl
by stagex
musl C库(libc)的Docker镜像实现,提供轻量级、高效且符合POSIX标准的C标准库环境,适用于构建和运行依赖musl的应用程序。
50K+ pulls
上次更新:11 个月前
bellsoft/liberica-openjre-alpine-musl logo
bellsoft/liberica-openjre-alpine-musl
by BellSoft
认证
Liberica是BellSoft开发的100%开源Java实现,为现代Java部署提供灵活、高效且安全的运行时环境,支持多种架构和操作系统,适用于桌面、服务器、云和嵌入式场景。
41M+ pulls
上次更新:3 天前
cimg/python logo
cimg/python
by CircleCI
认证
CircleCI提供的`cimg/python`是专为持续集成构建设计的Docker镜像,包含完整Python版本(通过pyenv),预装pip、pipenv和poetry,适用于CircleCI环境,旨在取代旧版`circleci/python`镜像。
23100M+ pulls
上次更新:11 天前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 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 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.