/docker-serverless

Docker image containing NodeJS, Serverless Framework and Yarn.

Primary LanguageMakefileMIT LicenseMIT

amaysim/serverless

npm deploy status image version docker pulls docker image size License

Serverless Application Framework AWS Lambda API Gateway

Docker image containing NodeJS, Serverless Framework and Yarn.

Usage

Docker run command

# running Serverless version 1.72.0
$ docker run --rm amaysim/serverless:1.72.0 serverless --help

Development

Prerequisites

  • Docker
  • Buildx
  • Make

Build image locally

# build image locally with latest Serverless version
$ make build

# build image locally with specific Serverless version
$ make build SERVERLESS_VERSION=1.72.0

# go inside the container
$ make shell

# testing multi arch build with buildx
# you may need to create a builder first
$ docker buildx create --name mybuilder --use
$ make buildMultiArch

# run the test
$ make ciTest

Docker image update automation

Periodically, once a week, a new amaysim/serverless Docker image containing the lastest version of Serverless is being built with GitHub Actions. This means that there is no need for someone to manually update and tag the image whenever there is a new Serverless version.

Contributing

The project follows the typical GitHub pull request model. Before starting any work, please either comment on an existing issue, or file a new one.

  1. Fork this repository
  2. Clone the forked repository
  3. Create a new branch with a meaningful name (optional)
  4. Make your changes
  5. Test locally (see section "Development")
  6. Commit and push your changes
  7. Create a pull request from a fork

Docker image

The Docker image has the following:

  • Node LTS (12.14.0) Alpine: we leverage Babel to be compatible with AWS Lambda runtime
  • Serverless Framework
  • yarn
  • zip: handy to zip your own serverless artifact
  • AWS CLI: required by some Serverless plug-ins to work

References