由于docker未在macOS中运行(但它正在运行),AWS sam构建失败



我想做什么

尝试使用AWS SAM(无服务器应用程序模型)部署ML模型。我在PyTorch中使用了他们相同的机器学习模板。这个模板使用了Docker,这是问题的根源。不幸的是,Docker对于我的用例是必要的,因为它是部署大型repo的唯一方法(PyTorch模块很大)。

当我运行命令sam build来构建应用程序时,我得到了错误:

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

但是,我安装的Docker桌面运行得很好。

输入图像描述Docker正在运行,我也可以运行docker run hello-world来验证我可以正常运行Docker。

重现问题

  1. 创建SAM repo

    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射线和CloudWatch应用程序见解。同样,这些都不重要。

  7. 根据自己的喜好设置项目名称

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

    sam build
    

希望同样的错误也会发生。

我的说明:

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

  • Docker Desktop 4.18.0 (104112)

  • SAM CLI, version 1.78.0

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

AWS Lambda Sam找不到docker

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

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

我终于解决了自己的问题。显然,根本原因似乎是Docker 4.18.0版本。要么这个版本有bug,要么这个版本对SAM来说太新了。我安装了旧版本(4.15.0),它可以工作。

最新更新