讲师中心 微信公众号
AI工具推荐 视频效率加速

利用VSCode Dev Containers打造一致的开发环境

风辰吖_8934

风辰吖_8934

发布时间:2025-12-26 15:15:52

|

953人浏览过

|

来源于php中文网

原创

Dev Containers 是 VS Code 官方功能,将完整开发环境(运行时、工具链、依赖等)打包进 Docker 容器,代码在本地编辑、命令在容器内执行,实现环境一致;通过 devcontainer.json 和 Dockerfile 配置,支持多容器协作与 CI 对齐。

利用vscode dev containers打造一致的开发环境

用 VS Code Dev Containers,团队成员能直接在容器里写代码,环境配置一次,到处可用,彻底告别“在我机器上是好的”这类问题。

什么是 Dev Containers

Dev Containers 是 VS Code 提供的官方功能,它把整个开发环境(包括运行时、工具链、依赖库、甚至 IDE 配置)打包进 Docker 容器。你编辑的代码仍在本地文件系统,但所有命令(如 npm install、python -m pytest、make build)都在容器内执行,完全隔离宿主机环境。

关键点:不是远程连接服务器,也不是单纯跑个服务容器;它是“带完整开发工具链的可复现工作区”。

快速上手三步走

打开你的项目文件夹 → 按 Ctrl+Shift+P(或 Cmd+Shift+P)→ 输入 “Dev Containers: Add Development Container Configuration Files…” → 选择基础镜像(如 Node.js 18、Python 3.11、Go 1.22 等)→ VS Code 自动生成 .devcontainer/devcontainer.json 和 Dockerfile。

GitHub Actions Actor Reliability Audit
GitHub Actions Actor Reliability Audit

审计按执行者划分的 GitHub Actions 运行可靠性,以识别高风险贡献者和不稳定的自动化负责人。

下载
  • devcontainer.json 定义容器行为:启动命令、端口转发、扩展推荐、挂载选项等
  • Dockerfile(可选但推荐)用于自定义基础镜像:装特定 CLI 工具、设环境变量、复制私有证书等
  • 配置完后,按 Ctrl+Shift+P → “Dev Containers: Reopen in Container”,VS Code 自动构建并进入容器环境

让环境真正一致的关键细节

光有容器还不够,要避免“看似一样、实则不同”的陷阱:

  • 固定镜像标签:别用 node:latest,改用 node:18.19.0-bullseye-slim 或 SHA256 摘要,防止基础镜像静默更新导致行为差异
  • 统一 UID/GID:在 devcontainer.json 中设置 "remoteUser": "vscode" 并确保容器内用户与本地文件权限兼容,避免 npm 全局安装报错或 git 权限拒绝
  • 预装常用扩展:通过 "customizations.vscode.extensions" 字段声明必需扩展(如 ESLint、Prettier、Python),新成员首次打开即自动安装
  • 共享配置文件:把 .editorconfig、.prettierrc、settings.json(放在 .devcontainer/ 下)一并纳入版本管理,格式和提示规则不因人而异

进阶:多服务协作与 CI 对齐

真实项目常涉及数据库、缓存、消息队列等依赖。Dev Containers 支持 docker-compose.yml 驱动多容器协作:

  • 在 .devcontainer/docker-compose.yml 中定义 backend、postgres、redis 等服务
  • VS Code 启动时自动 up 整套栈,并把 backend 容器作为主开发容器,其他服务自动链接
  • CI 流水线(如 GitHub Actions)可复用同一组 Dockerfile 和 compose 文件,实现“开发即部署”的最小差异路径

这样,本地调试时连的是容器内的 Postgres,CI 构建测试时也连同个镜像版本的 Postgres,数据类型、扩展支持、默认配置全都对得上。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

1995

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2782

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

956

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

3119

2025.09.10

数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2491

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

514

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

422

2026.02.12

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

4847

2023.07.18

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

0

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn