【问题标题】:Visual Studio Code - image operating system "linux" cannot be used on this platform errorVisual Studio Code - 无法在此平台上使用映像操作系统“linux”错误
【发布时间】:2019-01-19 14:21:13
【问题描述】:

我一直在关注此处发布的教程:

https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-deploy-function

我尝试了构建您的 IoT Edge 解决方案步骤的第 6 步中列出的构建和推送 IoT Edge 解决方案,但出现以下错误:

步骤 1/3:来自 mcr.microsoft.com/azureiotedge-functions-binding:1.0.0-linux-amd64 1.0.0-linux-amd64:从 azureiotedge-functions-binding 中提取 镜像操作系统“linux”不能在这个平台上使用

所以我注意到 CSharpFunction 模块文件夹中有几个 Dockerfile 对象。 1 个是 Windows,另外 3 个是 linux,包括导致错误的那个。由于所有 docker 文件以及执行构建和推送的命令都是应用程序生成的,因此有哪些设置或其他选项可以强制它使用正确的 Docker 容器进行构建和/或部署? TIA

【问题讨论】:

    标签: visual-studio azure docker


    【解决方案1】:

    原来我正在寻找的设置位于 deployment.template.json 文件本身。在项目文件夹中,VS Code 创建了四个 docker 文件:

    Dockerfile.amd64

    Dockerfile.amd64.debug

    Dockerfile.arm32v7

    Dockerfile.windows-amd64

    在 CSharpFunction 字典中有一个必须引用容器的图像键。默认设置是:

    "${MODULES.CSharpFunction.amd64}"
    

    改成:

    "${MODULES.CSharpFunction.windows-amd64}"
    

    解决问题。

    【讨论】:

    • 很好的发现。在本教程中要注意的另一件事是第 3 步。您可以使用任何您想要的格式命名模块名称,例如骆驼表示法。但是,当您输入映像存储库名称时,您必须首先输入 {registry server name}/modulename。模块名必须小写。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多