Visual Studio中docker-compose项目放子目录的相对路径配置问题
解决方案
可以通过相对路径实现该需求,仅需调整两处配置即可正常运行:
1. 修改docker-compose.yml配置
docker-compose中context参数的相对路径基准为docker-compose.yml文件自身所在的目录,你现在的compose文件存放在docker子目录中,只需要将context指向父级的解决方案根目录即可,调整后的完整配置如下:
version: '3.4' services: project: image: ${DOCKER_REGISTRY-}project build: context: ../ dockerfile: src/Project/Dockerfile
这里的context: ../代表从docker目录向上回退一级,定位到Solution.sln所在的根目录,dockerfile路径是相对于context的路径,因此不需要修改。
2. 调整Visual Studio dcproj配置
需要修改docker-compose.dcproj文件的基础路径属性,确保Visual Studio能正确识别构建上下文:
- 右键docker-compose项目选择「卸载项目」,再右键选择「编辑docker-compose.dcproj」
- 在第一个
<PropertyGroup>节点下添加/修改DockerComposeBasePath配置:
<DockerComposeBasePath>..\</DockerComposeBasePath>
- 保存文件后右键选择「重新加载项目」即可。
额外注意
如果需要.dockerignore规则正常生效,建议将docker目录下的.dockerignore移动到解决方案根目录(和Solution.sln同级),docker默认会从context指定的目录读取.dockerignore规则。
内容的提问来源于stack exchange,提问作者Sammy Berg
相关产品推荐
相关产品推荐

