重要提示:开发容器现已迁移至 dev containers GitHub 组织!我们非常高兴能在那里与您互动。欲了解更多信息,请查看我们的迁移公告。
本仓库已不再活跃,并于 2023 年 11 月归档。作为开放开发容器规范工作的一部分,我们已将本仓库的大部分内容迁移至 devcontainers GitHub 组织。
- 由开发容器规范维护者(如 VS Code 团队)管理的功能现已移至 devcontainers/features。
- 由开发容器规范维护者管理的定义/模板现已移至 devcontainers/templates。
mcr.microsoft.com/devcontainers
和mcr.microsoft.com/vscode/devcontainers
镜像现在从 devcontainers/images 发布。
对于新的模板/功能,您现在可以按照以下快速入门仓库的步骤进行自行发布,并可选择使其在工具中可见:模板快速入门、功能快速入门。不再需要在此提交 PR。
[已弃用] VS Code / GitHub Codespaces 开发容器定义
重要提示:如上文所述,本仓库已不再活跃,将于 2023 年 11 月归档。
开发容器是一个运行中的 Docker 容器,具有明确定义的工具/运行时栈及其先决条件。VS Code 开发容器扩展和 GitHub Codespaces 允许您在本地或云托管的开发容器中打开或克隆代码,并利用 VS Code 的全部开发功能集。
本仓库包含一组开发容器定义模板,帮助您快速启动容器化环境。这些定义描述了适当的容器镜像、启动容器的运行时参数以及应安装的 VS Code 扩展。每个定义提供了一个容器配置文件(devcontainer.json
)和其他所需文件,您可以将其添加到任何现有文件夹中,作为容器化项目的起点。您可以使用**添加开发容器配置文件...**命令将其添加到您的项目或代码空间中。
如果您正在寻找完整的示例项目,vscode-remote-try-* 仓库可能也会对您有所帮助。
向项目或代码空间添加定义
- 要么为您的仓库创建代码空间,要么设置本地机器以使用开发容器扩展,启动 VS Code,并打开您的项目文件夹。
- 按 F1,为开发容器或代码空间选择**添加开发容器配置文件...**命令。
- 从列表中选择一个推荐的定义,或选择**显示所有定义...以查看全部。如果您的项目已有 Dockerfile 或 Docker Compose 文件,可能需要选择从预定义容器配置定义...**选项。回答出现的任何问题。
- 查看定义的
README
以了解配置选项。链接可在添加到您文件夹的.devcontainer/devcontainer.json
文件中找到。 - 运行Remote-Containers: Reopen in Container以在本地使用,或在代码空间中运行Codespaces: Rebuild Container。
向仓库添加定义
您可以通过将 .devcontainer
下的文件添加到源代码控制中来共享项目的自定义开发容器定义。
只要安装了开发容器扩展,任何人在 VS Code 中打开您仓库的本地副本时都会被提示在容器中重新打开文件夹。此外,每当有人在 GitHub Codespaces 中为该仓库创建代码空间时,都会使用这个定义。
您的团队现在拥有了一致的环境和工具链,新的贡献者或团队成员可以快速提高生产力。首次贡献者将需要更少的指导,与环境设置相关的问题也会减少。
示例项目
如果您想尝试已有开发容器的示例项目,请查看以下仓库:
内容
containers
- 包含可重用的开发容器定义。script-library
- 包含本仓库中用于安装各种工具的脚本。在您自己的 Dockerfile 中也很有用。container-templates
- 包含用于创建您自己的容器定义或贡献的模板。
常见问题
我可以直接重用现有的容器镜像或 Docker / Docker Compose 配置吗?
是的!如果您的项目/仓库中有 Dockerfile 或 Docker Compose 文件,请按照相同的步骤添加定义,系统会提示您选择 Dockerfile 或 Docker Compose 文件并进行自定义。如果您将这些文件提交到 Git 仓库,也可以将其用于 GitHub Codespaces。如果您愿意,也可以手动启动容器并连接到它。但请注意,许多镜像可能缺少您想要使用的 git
等工具。script-library 中有一些脚本,比如 common script,可以帮助您将这些工具添加到现有的 Dockerfile 或镜像中。
devcontainer.json
的目的是什么?
devcontainer.json
文件类似于用于调试的 launch.json
,但设计用于启动(或连接到)开发容器。最简单的情况下,您只需在项目中创建一个 .devcontainer/devcontainer.json
文件,引用镜像、Dockerfile
或 docker-compose.yml
,并设置几个属性即可。您可以根据需要进行调整以适应各种情况。
贡献和反馈
有问题或反馈吗?
我们已将此仓库的大部分内容迁移到 devcontainers GitHub 组织,作为开放 Dev Container 规范工作的一部分。
- Dev Container 规范维护者管理的功能现在位于 devcontainers/features。
- Dev Container 规范维护者管理的定义/模板现在位于 devcontainers/templates。
mcr.microsoft.com/devcontainers
和mcr.microsoft.com/vscode/devcontainers
镜像现在从 devcontainers/images 发布。
因此,此仓库仅用于尚未被其所有者迁移到其他地方的社区定义。如果您是社区所有者,想要我们删除这里的现有定义,请随时提交 PR 来执行此操作!
对于新的模板/功能,您现在可以通过遵循以下快速入门仓库中的步骤进行自行发布,并可选择使其在工具中可见:模板快速入门,功能快速入门。
您还可以:
- 为 VS Code Dev Containers 扩展或 GitHub Codespaces 提供反馈。
- 讨论 Dev Container 规范 或加入 Slack 频道。
- 在 Dev Container 规范仓库 中提出改进建议。
- 为 Dev Container CLI 做出贡献。
本项目已采用 Microsoft 开源行为准则。 有关更多信息,请参阅行为准则常见问题解答或 联系 opencode@microsoft.com 获取任何其他问题或意见。
许可证
版权所有 (c) Microsoft Corporation。保留所有权利。
根据 MIT 许可证授权。请参阅 LICENSE。
对于从此仓库生成的镜像,请参阅 LICENSE 和 NOTICE.txt。