广告:Codex Token 低价中转站稳定接口 · 快速接入 · 开发者备用通道
Engineering article

VS Code容器开发踩坑记录:工作区管理 | 开发者必备

VS Code容器开发踩坑记录:工作区管理 | 开发者必备 容器开发时别傻乎乎地把工作区目录直接丢进Dockerfile 你得知道工作区管理对容器构建影响有多大 一个不小心就会搞出一堆乱七八糟的镜像 尤其是多项目协作时更得小心 工作区文件夹结构别乱来 默认情况下VS Code会在项目根目录生成\.vscode文件夹 里面有个wo

VS Code容器开发踩坑记录:工作区管理 | 开发者必备
配图来源于网络和AI生成,仅供参考。
VS Code容器开发踩坑记录:工作区管理 | 开发者必备
容器开发时别傻乎乎地把工作区目录直接丢进Dockerfile
你得知道工作区管理对容器构建影响有多大
一个不小心就会搞出一堆乱七八糟的镜像
尤其是多项目协作时更得小心

工作区文件夹结构别乱来
默认情况下VS Code会在项目根目录生成\.vscode文件夹
里面有个workspaces.json文件记录了你的工作区配置
但如果你在容器里运行VS Code
这个文件夹可能根本不存在
这就导致你本地的配置在容器里不生效
解决办法是手动挂载这个目录
比如在docker run命令里加上-v /path/to/vscode:/root/.vscode
这样容器就能读取你的配置了

调试容器时别只看日志
有时候容器启动失败你一看日志就头大
但其实问题可能出在环境变量或者路径上
比如你设置了NODE_ENV=production
但容器里没有安装生产依赖
这时候即使日志没报错你也会出问题
建议在调试前先确认容器里到底有没有需要的包
用docker exec -it container_id bash进去看看

工作区切换时别带错目录
你可能在本地A项目里配置了容器
结果不小心切换到B项目目录
这时候Dockerfile就会用错路径
导致构建失败或者环境不对
我之前就遇到过这种情况
在.vscode/settings.json里设置了containerFolder
但没注意切换到了其他项目
最后耗了三个小时才发现是目录搞错了

容器里的工作区文件别搞丢了
有时候你本地的工作区配置文件
比如launch.json或者tasks.json
会被误删或者没正确挂载到容器里
这时候调试和构建就全乱了
记得每次修改配置后检查一下挂载点
确保这些文件都在容器里
否则你得重新配置一遍

本地环境变量别忘挂载
容器开发时环境变量是关键
但如果你没把.env文件挂载到容器
或者没在Dockerfile里导出变量
那很多配置都会失效
比如数据库连接地址或者API密钥
我记得有次用docker-compose.yml
忘记把.env文件挂载了
结果打日志的时候发现连接不上数据库
后来才发现是没传环境变量进去