AWS sam 构建失败,因为 docker 没有在 macOS 中运行(但它正在运行)

问题描述 投票:0回答:2

我想做什么

试用AWS SAM (Serverless Application Model)部署机器学习模型。我将他们的 sam 机器学习模板与 PyTorch 一起使用。该模板使用了 Docker,这是问题的根源。不幸的是,Docker 对于我的用例来说是必需的,因为它是部署大型存储库(PyTorch 模块很大)的唯一方法。

问题

当我运行命令

sam build
来构建应用程序时,我得到了错误:

Build Failed
Error: Building image for InferenceFunction requires Docker. is Docker running?

然而,我安装的 Docker 桌面运行得很好。

enter image description here Docker 正在运行,我也可以运行

docker run hello-world
来验证我可以正常运行 Docker。

重现问题

  1. 创建 SAM 存储库

    sam init
    
  2. 选择 AWS 快速启动模板 以选择起始模板。 (

    Choice: 1
    )

  3. 选择机器学习模板。 (

    Template: 13
    )

  4. 选择python3.9作为运行时(

    Runtime: 1
    )。实际上,这并不重要,因为我也尝试过 python3.8 和 3.10。

  5. 选择 PyTorch 机器学习推理 API 作为入门模板。 (

    Template: 1
    )

  6. 选择退出 X-Ray 和 CloudWatch Application Insights。同样,这些都无关紧要。

  7. 随意设置项目名称。

  8. cd 进入项目文件夹,然后构建应用程序(**确保你有 docker 运行)

    sam build
    

希望会发生同样的错误。

我的规格:

  • Macbook Air M2。 (不确定这个问题是否只发生在 Apple Silicon 芯片上)

  • Docker 桌面版 4.18.0 (104112)

  • SAM CLI,版本 1.78.0

我还没有找到任何遇到相同问题的stackoverflow帖子,只有类似的。例如:

AWS Lambda Sam 找不到 docker

公认的解决方案是关于用户组的,但我认为它适用于 Linux,因为从我读到的,Mac 不应该有这个问题。

我怀疑是关于 AWS SAM 找不到我的 Docker。

docker macos aws-sam aws-sam-cli
2个回答
0
投票

我终于解决了我自己的问题。显然,根本原因似乎是 Docker 版本 4.18.0。此版本中存在错误或版本对于 SAM 而言太新。我安装了旧版本 (4.15.0) 并且有效。


0
投票

只是评论,我有同样的问题,也通过降级到 4.15.0 解决了它——也使用 Apple silicon...

© www.soinside.com 2019 - 2024. All rights reserved.