
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Conda Env Update Buildpack 是一个用于在构建过程和容器环境中自动化更新 Conda 环境的工具。它通过检测项目中的 Conda 配置文件,自动解析依赖关系并更新环境,简化基于 Conda 的项目在容器化或云平台部署中的依赖管理流程。主要用途包括:在容器镜像构建阶段动态更新依赖版本、确保多环境(开发/测试/生产)依赖一致性、以及简化 CI/CD 流程中的环境配置步骤。
environment.yml、requirements.txt、pyproject.toml 等),自动解析依赖项。numpy>=1.21.0),确保环境一致性。environment.yml 和 requirements.txt)。pack CLI、docker build)及云平台(Cloud Foundry、Heroku)无缝集成。pack CLI(Cloud Native Buildpacks)、docker 或云平台 Buildpack 集成工具(如 Heroku CLI)。environment.yml)。4.2.1 基于 pack CLI 集成(推荐)
pack CLI(参考 https://buildpacks.io/docs/tools/pack/%EF%BC%89%E3%80%82其中bashpack build my-app --buildpack <conda-env-update-buildpack-url> --path ./my-project
<conda-env-update-buildpack-url> 为该 buildpack 的仓库地址(如 GitHub、Docker Hub)。4.2.2 容器镜像中手动集成
在 Dockerfile 中通过 RUN 命令调用 buildpack 脚本(需提前下载 buildpack 代码):
dockerfileFROM docker.xuanyuan.run/python:3.9-slim COPY ./conda-env-update-buildpack /buildpack COPY ./my-project /app RUN /buildpack/bin/build /app /layers /app/env
项目根目录需包含至少一个 Conda 配置文件,支持以下格式:
environment.yml(标准 Conda 环境定义文件,推荐),示例:
yamlname: my-env channels: - defaults - conda-forge dependencies: - python=3.9 - numpy>=1.21.0 - pandas=1.3.5 - pip: - requests==2.26.0
requirements.txt(pip 格式,仅支持 pip 依赖,需搭配 pip 通道)。pyproject.toml(支持 poetry 或 pip 依赖定义)。通过设置环境变量控制 buildpack 行为,支持以下参数:
| 参数名 | 说明 | 默认值 |
|---|---|---|
CONDA_VERSION | 指定 Conda 版本(如 4.12.0),为空则使用系统默认版本。 | 空(使用环境默认 Conda) |
CONDA_ENV_FILE | 自定义环境配置文件路径(如 ./config/env.yml)。 | ./environment.yml |
FORCE_UPDATE | 是否强制更新所有依赖(true/false),true 会忽略缓存强制重装。 | false |
CHANNEL_PRIORITY | Conda 通道优先级(strict/flexible/disabled)。 | flexible |
PIP_NO_CACHE_DIR | pip 是否禁用缓存(true/false),true 可减少镜像体积。 | false |
pack CLI 构建镜像假设项目结构如下:
my-project/ ├── environment.yml # Conda 配置文件 └── app.py # 应用代码
构建命令:
bashpack build my-conda-app \ --buildpack https://github.com/example/conda-env-update-buildpack.git \ # buildpack 地址 --env CONDA_VERSION=4.12.0 \ # 指定 Conda 版本 --env FORCE_UPDATE=true \ # 强制更新依赖 --path ./my-project
构建完成后,运行镜像:
bashdocker run -it --rm docker.xuanyuan.run/my-conda-app python app.py
在 docker-compose.yml 中定义构建步骤(需配合 pack CLI 或自定义构建脚本):
yamlversion: '3.8' services: app: build: context: ./my-project dockerfile: Dockerfile # 自定义 Dockerfile,内部调用 buildpack environment: - CONDA_ENV_FILE=./config/env.yml # 自定义配置文件路径 - PIP_NO_CACHE_DIR=true # 禁用 pip 缓存
Dockerfile 示例(调用 buildpack 脚本):
dockerfileFROM docker.xuanyuan.run/buildpack-deps:bullseye # 安装 pack CLI 和 Conda RUN apt-get update && apt-get install -y curl \ && curl -sSL https://github.com/buildpacks/pack/releases/download/v0.28.0/pack-v0.28.0-linux-amd64.tgz | tar -C /usr/local/bin --strip-components=1 -xzf - \ && curl -sSL https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh \ && bash miniconda.sh -b -p /opt/conda && rm miniconda.sh # 集成 buildpack 并构建 COPY . /app RUN pack build app-image --buildpack /app/buildpack --path /app CMD ["python", "app.py"]
PIP_NO_CACHE_DIR=true 和清理 Conda 缓存(conda clean -afy)减少镜像大小。CONDA_VERSION 与项目依赖兼容(如 Python 3.10 需 Conda ≥4.10.0)。environment.yml 和 requirements.txt,buildpack 优先使用 environment.yml。PermissionDenied 错误)。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务