使用Docker Compose配置DevContainer时挂载路径无效问题求助
解决DevContainer + Docker Compose卷挂载绝对路径错误
问题核心是Docker Compose要求容器内的挂载路径必须是绝对路径,你之前写的workspaces是相对路径,所以触发报错。下面是正确的配置方式:
1. 修正docker-compose.yml的卷配置
把容器端的路径改成带/开头的绝对路径,比如DevContainer默认的工作区路径/workspaces。根据你的项目结构调整本地路径:
示例配置(项目结构:.devcontainer是项目根目录的子目录)
version: '3.8' services: go-service: image: golang:1.22 volumes: # 本地项目根目录(../ 对应.devcontainer的上级目录)挂载到容器的/workspaces - ../:/workspaces # 保持容器运行,方便DevContainer连接 command: sleep infinity environment: - GO111MODULE=on
如果你的docker-compose.yml直接放在项目根目录,本地路径用.即可:
volumes: - .:/workspaces
2. 同步.devcontainer.json的配置
确保workspaceFolder指向容器内的绝对路径,和docker-compose里的挂载路径一致:
{ "name": "Go Development Container", "dockerComposeFile": "./docker-compose.yml", "service": "go-service", // 和容器内挂载路径完全一致 "workspaceFolder": "/workspaces", "customizations": { "vscode": { "extensions": [ "golang.go" ] } } }
关键注意事项
- 容器端路径必须以
/开头,比如/workspaces,不能写workspaces - 本地路径是相对docker-compose.yml文件所在位置的路径,别搞混层级
workspaceFolder要和容器内的挂载路径严格匹配,否则DevContainer无法正确识别项目根目录
内容的提问来源于stack exchange,提问作者Bachrul uluum
相关产品推荐
相关产品推荐

