【问题标题】:Python error in serverless framework stating - Serverless Error: spawn docker ENOENT无服务器框架中的 Python 错误说明 - 无服务器错误:生成 docker ENOENT
【发布时间】:2022-03-17 13:51:16
【问题描述】:

错误:

Running "serverless" from node_modules

Deploying serverless-flask to stage dev (us-east-1)

✖ Stack serverless-flask-dev failed to deploy (0s)
Environment: darwin, node 16.0.0, framework 3.1.1 (local) 3.1.1v (global), plugin 6.0.0, SDK 4.3.1
Credentials: Local, "default" profile
Docs:        docs.serverless.com
Support:     forum.serverless.com
Bugs:        github.com/serverless/serverless/issues

Error:
Error: spawn docker ENOENT
    at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
    at onErrorNT (node:internal/child_process:480:16)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)

我正在按照这些说明 (https://www.serverless.com/blog/flask-python-rest-api-serverless-lambda-dynamodb/) 进行操作,但似乎无法弄清楚这一点,因为基本应用程序是在 python 中而不是 javascript 中......大多数解决了这个问题的人都使用 javascript 解决了它。

【问题讨论】:

  • 你在使用serverless-python-requirements插件吗?
  • 是的,对不起,我忘了发布我遵循的说明@TheSmartMonkey 他们在这里 - serverless.com/blog/…
  • 如果您使用的是 64 位 linux 系统,那么实际使用 docker 的理由并不充分,因此您需要更新 serverless.yml 文件并进行以下更改:- dockerizePip: "false" 或删除来自serverless.yml 文件的条目。就我而言,它设置为dockerizePip: non-linux。我刚刚删除了该条目,一切正常!!

标签: python node.js python-3.x serverless-framework aws-serverless


【解决方案1】:

要解决此问题,您需要使用自定义块中的这些更改来更新您的 serverless.yml 文件

custom:
  pythonRequirements:
  pythonBin: python3
  dockerizePip: "false"

我也面临同样的问题,我的问题是 dockerizePip 设置为

dockerizePip: non-linux

要么从 serverless.yml 文件中删除此条目,要么将其设置为 false

【讨论】:

  • 这种情况下serverless是否需要nodejs和python3在同一个容器中?
  • 不,我们需要 python 或 Nodejs @KenJ 而不是两者都需要
【解决方案2】:

为了能够使用serverless-python-requirements 部署您的项目,您需要在您的机器上安装 docker(如果您使用的是 Windows,请考虑使用 docker 桌面或 linux 虚拟机)

我为什么需要 Docker?

当您执行sls deployserverless-python-requirements 时,启动一个 docker 容器来安装您放在 requirements.txt 文件中的所有依赖项,这些依赖项将在部署过程中使用

您收到此错误是因为您的容器未正确启动

【讨论】:

  • 谢谢,我安装了 docker,它在部署构建过程中就像一个魅力,但是我现在收到这个错误:错误:请求中包含的安全令牌无效。我不确定他们在谈论什么安全令牌以及我将其放置在哪里。那是我从 docker 生成的东西吗?
  • 可能与 aws 相关,验证您的 .aws/credentials 文件 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 是否正确
猜你喜欢
  • 2020-09-25
  • 2018-09-17
  • 2020-09-25
  • 2019-07-15
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 2022-06-16
  • 2021-04-30
相关资源
最近更新 更多