Docker Compose构建ASP.NET Core应用报错:文件或目录不存在
解决Docker Compose构建ASP.NET Core应用时的"lstat ... no such file or directory"错误
针对你遇到的构建错误,以下是具体排查和解决步骤:
1. 确认上下文路径有效性
检查docker-compose.yml所在目录下是否存在./TestApp文件夹,且该目录内包含Dockerfile和完整的ASP.NET Core项目文件:
- Linux/Mac终端执行:
ls ./TestApp - Windows终端执行:
dir .\TestApp
如果路径不存在或文件缺失,修正context路径为正确的项目目录。
2. 排查.dockerignore文件问题
即使你已检查过,仍需确认TestApp/.dockerignore是否存在无效规则:
- 避免单独的
#行或语法错误的规则(这类错误可能导致BuildKit解析上下文时异常) - 确保未误排除项目必需文件,推荐的ASP.NET Core项目.dockerignore配置:
bin/ obj/ .dockerignore .gitignore
删除文件中所有无效的空行或错误规则后重新构建。
3. 禁用BuildKit重试构建
BuildKit有时会出现路径解析或缓存异常,可临时禁用后尝试:
- 终端执行:
DOCKER_BUILDKIT=0 docker-compose build - 或在Docker Desktop设置中关闭"Use BuildKit for building"选项,重启Docker后再执行构建。
4. 检查文件共享权限
- Windows用户:打开Docker Desktop设置 → Resources → File Sharing,确保项目所在驱动器已勾选,允许Docker访问。
- Mac用户:打开Docker Desktop设置 → Resources → File Sharing,确认项目所在文件夹已添加到共享列表。
5. 清理Docker缓存后重建
执行以下命令彻底清理缓存并重新构建:
docker system prune -a docker-compose down -v docker-compose build --no-cache
6. 验证Dockerfile中的输出文件名
确认Dockerfile最后一行的TestApp.dll与你的ASP.NET Core项目名称一致,若项目名称不同,替换为对应的输出DLL文件名。
内容的提问来源于stack exchange,提问作者axesmith99
相关产品推荐
相关产品推荐

