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

构建并推送Azure IoT Edge解决方案时Docker报错求助

Docker Buildx构建Azure IoT Edge模块报错:"requires exactly 1 argument"

我按照微软Azure IoT Edge Linux开发教程操作,在执行“构建并推送解决方案”步骤时,通过VS Code上下文菜单选择「Build and Push IoT Edge Solution」选项,自动生成的命令执行后报错:

D:\Python\IoT Edge\TestModule1>docker build  --rm -f "d:\Python\IoT Edge\TestModule1\modules\TestModule1\Dockerfile.amd64" -t regateregistry.azurecr.io/testmodule1:0.0.1-amd64 "d:\Python\IoT Edge\TestModule1\modules\TestModule1" ; if ($?) { docker push regateregistry.azurecr.io/testmodule1:0.0.1-amd64 }
ERROR: "docker buildx build" requires exactly 1 argument.
See 'docker buildx build --help'.

Usage:  docker buildx build [OPTIONS] PATH | URL | -

Start a build

该命令为VS Code扩展自动生成,我并非Docker专业人士,无法通过帮助信息定位问题,请问错误原因可能是什么?


可能的原因及解决方向

  • Docker Buildx兼容性问题:当前Docker默认使用buildx作为构建工具,但扩展生成的是传统docker build语法,Windows环境下的盘符路径(如d:\xxx)在buildx中可能无法被正确解析,导致上下文路径参数失效。
  • VS Code IoT Edge扩展版本缺陷:旧版本扩展在Windows环境下生成命令时,可能存在路径转义或空格处理错误,导致buildx无法识别有效的构建参数。
  • Docker CLI版本适配问题:较新版本的Docker中docker build会默认调用buildx,而扩展生成的命令未适配这种行为,引发参数格式不匹配。

解决建议

  • 临时切换传统构建模式:执行docker buildx uninstall,让Docker默认使用传统docker build命令,重新运行构建操作。
  • 手动修正路径格式:将自动生成命令中的Windows路径替换为WSL兼容格式(例如d:\Python\IoT Edge\TestModule1改为/mnt/d/Python/IoT Edge/TestModule1),确保路径引号完整,再手动执行命令。
  • 更新VS Code IoT Edge扩展:到VS Code扩展市场检查并安装最新版本的Azure IoT Edge扩展,新版本通常会修复Windows环境下的命令生成问题。
  • 验证容器注册表登录状态:执行docker login regateregistry.azurecr.io确认已成功登录Azure容器注册表,排除登录问题带来的间接干扰。

内容的提问来源于stack exchange,提问作者DmytroIE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:43:15