
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
|----------|-------|
| 类别 | 核心、语言 |
| 镜像类型 | Dockerfile |
| 已发布镜像 | mcr.microsoft.com/devcontainers/python |
| 可用镜像变体 | 3 / 3-bookworm, 3.9 / 3.9-bookworm, 3.10 / 3.10-bookworm, 3.11-bookworm / 3.11, 3.12-bookworm / 3.12, 3-bullseye, 3.9-bullseye, 3.10-bullseye, 3.11-bullseye, 12-bullseye (完整列表) |
| 已发布镜像架构 | x86-64,bookworm和bullseye变体支持arm64/aarch64 |
| 容器主机操作系统支持 | Linux、macOS、Windows |
| 容器操作系统 | Debian |
| 语言、平台 | Python |
有关已发布镜像内容的信息,请参见**https://github.com/devcontainers/images/tree/main/src/python/history**%E3%80%82
您可以通过在.devcontainer/devcontainer.json中使用image属性,或在您自己的Dockerfile中更新FROM语句,直接引用预构建版本的Dockerfile,例如:
mcr.microsoft.com/devcontainers/python:3(最新版)mcr.microsoft.com/devcontainers/python:3.9(或3.9-bookworm、3.9-bullseye以固定到特定操作系统版本)mcr.microsoft.com/devcontainers/python:3.10(或3.10-bookworm、3.10-bullseye以固定到特定操作系统版本)mcr.microsoft.com/devcontainers/python:3.11(或3.11-bookworm、3.11-bullseye以固定到特定操作系统版本)mcr.microsoft.com/devcontainers/python:3.12(或3.12-bookworm、3.12-bullseye以固定到特定操作系统版本)有关更多详细信息,请参阅本指南。
您可以通过引用每个镜像的语义化版本来决定更新频率。例如:
mcr.microsoft.com/devcontainers/python:1-3.9(或1-3.9-bullseye)mcr.microsoft.com/devcontainers/python:1.0-3.9(或1.0-3.9-bullseye)mcr.microsoft.com/devcontainers/python:1.0.0-3.9(或1.0.0-3.9-bullseye)但是,我们仅对最新的https://github.com/devcontainers/images/issues/90%E9%95%9C%E5%83%8F%E7%89%88%E6%9C%AC%EF%BC%88%E4%BE%8B%E5%A6%82%601-14%60%EF%BC%89%E8%BF%9B%E8%A1%8C%E5%AE%89%E5%85%A8%E8%A1%A5%E4%B8%81%E6%9B%B4%E6%96%B0%E3%80%82%E5%A6%82%E6%9E%9C%E6%82%A8%E9%94%81%E5%AE%9A%E5%88%B0%E6%9B%B4%E5%85%B7%E4%BD%93%E7%9A%84%E7%89%88%E6%9C%AC%EF%BC%8C%E5%8F%AF%E8%83%BD%E9%9C%80%E8%A6%81%E5%9C%A8Dockerfile%E4%B8%AD%E8%BF%90%E8%A1%8C%60apt-get update && apt-get upgrade`以至少获取操作系统安全更新。
有关每个版本内容的信息,请参见https://github.com/devcontainers/images/tree/main/src/python/history%EF%BC%8C%E5%AE%8C%E6%95%B4%E6%A0%87%E7%AD%BE%E5%88%97%E8%A1%A8%E8%AF%B7%E5%8F%82%E8%A7%81%E6%AD%A4%E5%A4%84%E3%80%82
或者,您可以使用https://github.com/devcontainers/images/tree/main/src/python/.devcontainer%E7%9A%84%E5%86%85%E5%AE%B9%E6%9D%A5%E5%AE%8C%E5%85%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E5%AE%B9%E5%99%A8%E5%86%85%E5%AE%B9%EF%BC%8C%E6%88%96%E4%B8%BA%E9%95%9C%E5%83%8F%E4%B8%8D%E6%94%AF%E6%8C%81%E7%9A%84%E5%AE%B9%E5%99%A8%E6%9E%B6%E6%9E%84%E6%9E%84%E5%BB%BA%E3%80%82
除Python和git外,本镜像/Dockerfile还包含许多Python工具、zsh、Oh My Zsh!、具有sudo访问权限的非root用户vscode,以及一系列常见的开发依赖项。
由于与Python后端配合使用的JavaScript前端Web客户端代码通常需要使用基于Node.js的工具进行构建,因此本容器还包含nvm,以便您可以轻松安装Node.js。
您还可以通过在devcontainer.json中添加以下内容,使用https://github.com/devcontainers/features/tree/main/src/node%E5%AE%89%E8%A3%85%E4%BB%BB%E4%BD%95%E7%89%88%E6%9C%AC%E7%9A%84Node%EF%BC%9A
json{ "features": { "ghcr.io/devcontainers/features/node:1": { "version": "latest" } } }
安装或更新Python工具
本容器使用https://pipxproject.github.io/pipx/%E5%AE%89%E8%A3%85%E6%89%80%E6%9C%89Python%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7%EF%BC%8C%E4%BB%A5%E9%81%BF%E5%85%8D%E5%BD%B1%E5%93%8D%E5%85%A8%E5%B1%80Python%E7%8E%AF%E5%A2%83%E3%80%82%E6%82%A8%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E6%AD%A4%E5%B7%A5%E5%85%B7%E5%9C%A8%E9%9A%94%E7%A6%BB%E7%8E%AF%E5%A2%83%E4%B8%AD%E6%B7%BB%E5%8A%A0%E5%85%B6%E4%BB%96%E5%B7%A5%E5%85%B7%E3%80%82%E4%BE%8B%E5%A6%82%EF%BC%9A
bashpipx install prospector
有关更多信息,请参见https://pipxproject.github.io/pipx/docs/%E3%80%82
使用forwardPorts属性
默认情况下,Flask等框架仅在容器内监听localhost。因此,我们建议使用forwardPorts属性(v0.98.0+可用)使这些端口在本地可用。
json"forwardPorts": [5000]
appPort属性发布而非转发端口,因此应用程序需要监听*或0.0.0.0才能从外部访问。这与某些Python框架的默认设置冲突,但幸运的是forwardPorts属性没有此限制。
如果您已在容器中打开文件夹,请从命令面板(F1)使用Remote-Containers: Rebuild Container命令重建容器,使设置生效。
[可选] 将依赖项构建到容器镜像中
如果您的依赖项很少更改,可以通过在Dockerfile中添加以下内容,将requirements.txt的内容包含到容器中:
DockerfileCOPY requirements.txt /tmp/pip-tmp/ RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \ && rm -rf /tmp/pip-tmp
由于requirements.txt可能位于您打开的文件夹中,请确保在devcontainer.json中包含"context": ".."。这允许Dockerfile访问打开文件夹中的所有内容。
[可选] 允许非root用户vscode无需sudo进行全局pip安装
您可以通过在devcontainer.json中添加"remoteUser": "vscode"来选择在容器中使用非root用户vscode。但是,默认情况下,执行全局pip安装需要使用sudo:
bashsudo pip install <your-package-here>
或者坚持用户安装:
bashpip install --user <your-package-here>
如果您希望,可以添加以下内容到Dockerfile,使全局安装进入vscode用户可写入的其他文件夹:
DockerfileENV PIP_TARGET=/usr/local/pip-global ENV PYTHONPATH=${PIP_TARGET}:${PYTHONPATH} ENV PATH=${PIP_TARGET}/bin:${PATH} RUN if ! cat /etc/group | grep -e "^pip-global:" > /dev/null 2>&1; then groupadd -r pip-global; fi \ && usermod -a -G pip-global vscode \ && umask 0002 && mkdir -p ${PIP_TARGET} \ && chown :pip-global ${PIP_TARGET} \ && ( [ ! -f "/etc/profile.d/00-restore-env.sh" ] || sed -i -e "s/export PATH=/export PATH=\/usr\/local\/pip-global:/" /etc/profile.d/00-restore-env.sh )
dev container规范镜像在https://github.com/devcontainers/images%E4%BB%93%E5%BA%93%E4%B8%AD%E7%BB%B4%E6%8A%A4%E3%80%82%E6%82%A8%E5%8F%AF%E4%BB%A5%E6%B5%8F%E8%A7%88%E6%AF%8F%E4%B8%AA%E9%95%9C%E5%83%8F%E5%B9%B6%E6%8F%90%E4%BA%A4%E9%97%AE%E9%A2%98%E6%88%96%E5%8A%9F%E8%83%BD%E8%AF%B7%E6%B1%82%E3%80%82
版权所有 (c) Microsoft Corporation。保留所有权利。
根据MIT许可证授权。参见https://github.com/devcontainers/images/blob/main/LICENSE
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务