You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS下Docker Desktop构建.NET 8容器报错:找不到docker/podman可执行文件

解决Docker Compose构建.NET 8项目时的容器构建错误

问题根源

你的.NET 8项目引用了Microsoft.NET.Build.Containers NuGet包,该包会让dotnet publish自动尝试构建并推送Docker镜像。但在Docker镜像的构建阶段(容器内部)没有Docker客户端,也无法访问本地Docker守护进程,因此触发Cannot find docker/podman executable和local registry is not available错误。

解决方法

方法一:在publish命令中禁用自动容器构建

修改Dockerfile中的dotnet publish命令,添加/p:ContainerBuild=false参数,强制关闭.NET的自动容器构建功能:

RUN dotnet publish -c release --no-restore -o /app -r linux-x64 --self-contained false --no-build /p:ContainerBuild=false

修改后重新执行sudo docker compose up -d即可。

方法二:移除项目中的容器构建NuGet包

如果你的项目不需要通过dotnet publish直接生成Docker镜像,可以卸载Microsoft.NET.Build.Containers包:

dotnet remove package Microsoft.NET.Build.Containers

执行命令后重新生成项目,再运行Docker Compose命令即可正常构建。

方法三:Docker-in-Docker配置(不推荐)

如果确实需要在构建容器内运行Docker,需要在Dockerfile中安装Docker客户端,并挂载本地Docker守护进程的套接字。但这种配置复杂且存在安全风险,仅适用于特殊场景,一般不推荐用于当前场景。

内容的提问来源于stack exchange,提问作者Carlos Ramírez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 12:52:34