Не удается запустить базовый пример без сервера и bref локально

#macos #serverless #bref

#macos #без сервера #bref

Вопрос:

Я хочу запустить базовый пример примера без сервера и bref.

Что я сделал:

  1. установка npm -g без сервера
  2. композитору требуется bref / bref
  3. инициализация поставщика / bin / bref
  4. бессерверный вызов local -f привет —docker

Я получаю эту ошибку:

 Miroslavs-MacBook-Air:testing kosta90s$ serverless invoke local -f hello --docker
Serverless: Packaging service...
Serverless: Excluding development dependencies...
START RequestId: f815c369-8fa7-1671-cbbd-d623069bc9c2 Version: $LATEST
END RequestId: f815c369-8fa7-1671-cbbd-d623069bc9c2
REPORT RequestId: f815c369-8fa7-1671-cbbd-d623069bc9c2  Init Duration: 15.78 ms Duration: 1.35 ms   Billed Duration: 100 ms Memory Size: 1024 MB    Max Memory Used: 7 MB   

{"errorType":"exitError","errorMessage":"RequestId: f815c369-8fa7-1671-cbbd-d623069bc9c2 Error: Couldn't find valid bootstrap(s): [/var/task/bootstrap /opt/bootstrap]"}
 
  Error --------------------------------------------------
 
  Error: Failed to run docker for provided image (exit code 1})
      at /usr/local/lib/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js:536:21
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (internal/process/task_queues.js:93:5)
 
     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
 
  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com
 
  Your Environment Information ---------------------------
     Operating System:          darwin
     Node Version:              14.14.0
     Framework Version:         2.8.0
     Plugin Version:            4.1.1
     SDK Version:               2.3.2
     Components Version:        3.2.7
  

serverless.yml

 service: app

provider:
    name: aws
    region: us-east-1
    runtime: provided

plugins:
    - ./vendor/bref/bref

functions:
    hello:
        handler: index.php
        description: ''
        layers:
            - ${bref:layer.php-74}

# Exclude files from deployment
package:
    exclude:
        - 'tests/**'
  

Я работаю над macOS Catalina.

Комментарии:

1. Я не знаком с bref. Но я думаю, что вы добавили ‘—docker’ по ошибке. Можете ли вы попробовать вызвать функцию без нее?

Ответ №1:

serverless invoke local пытается использовать образ Docker с именем lambci/lambda:${runtime} where runtime phpX.Y в вашем случае.

https://github.com/serverless/serverless/blob/6a81137406fd2a2283663af93596ba79d23e38ef/lib/plugins/aws/invokeLocal/index.js#L478

Такого изображения, которое вы можете видеть здесь, нет:

https://hub.docker.com/r/lambci/lambda/tags

Как сказано в комментариях, попробуйте без --docker . Если вам нужен Docker, вы можете следовать документации и использовать следующее docker-compose.yml :

 version: "3.5"

services:
    web:
        image: bref/fpm-dev-gateway
        ports:
            - '8000:80'
        volumes:
            - .:/var/task
        depends_on:
            - php
        environment:
            HANDLER: index.php
    php:
        image: bref/php-74-fpm-dev
        volumes:
            - .:/var/task:ro