GitHub: javiortizmol/docker-lambda
Docker Lambda runtime emulator for local development and testing of AWS Lambda functions.
This project is based on mLupine/docker-lambda, a maintained fork of the original LambCI project that provides sandboxed local environments that replicate the live AWS Lambda environment almost identically.
javiortizmol/docker-lambda:python3.8-x86_64 ✅ Uses official AWS Lambda Python 3.8javiortizmol/docker-lambda:python3.9-x86_64 ✅ Uses official AWS Lambda Python 3.9javiortizmol/docker-lambda:python3.10-x86_64 ✅ Uses official AWS Lambda Python 3.10javiortizmol/docker-lambda:python3.11-x86_64 ✅ Uses official AWS Lambda Python 3.11javiortizmol/docker-lambda:python3.12-x86_64 ✅ Uses official AWS Lambda Python 3.12javiortizmol/docker-lambda:provided.al2-x86_64Each runtime also has a corresponding build environment with development tools:
javiortizmol/docker-lambda:python3.8-build-x86_64 ✅ Includes development toolsjaviortizmol/docker-lambda:python3.9-build-x86_64 ✅ Includes development toolsjaviortizmol/docker-lambda:python3.10-build-x86_64 ✅ Includes development toolsjaviortizmol/docker-lambda:python3.11-build-x86_64 ✅ Includes development toolsjaviortizmol/docker-lambda:python3.12-build-x86_64 ✅ Includes development toolsjaviortizmol/docker-lambda:provided.al2-build-x86_64# Python 3.8
docker run -v $(pwd):/var/task javiortizmol/docker-lambda:python3.8-x86_64 handler.handler
# Python 3.9
docker run -v $(pwd):/var/task javiortizmol/docker-lambda:python3.9-x86_64 handler.handler
# Python 3.10
docker run -v $(pwd):/var/task javiortizmol/docker-lambda:python3.10-x86_64 handler.handler
# Python 3.11
docker run -v $(pwd):/var/task javiortizmol/docker-lambda:python3.11-x86_64 handler.handler
# Python 3.12
docker run -v $(pwd):/var/task javiortizmol/docker-lambda:python3.12-x86_64 handler.handler
# Python 3.8 build environment
docker run -v $(pwd):/var/task javiortizmol/docker-lambda:python3.8-build-x86_64
# Python 3.9 build environment
docker run -v $(pwd):/var/task javiortizmol/docker-lambda:python3.9-build-x86_64
# Python 3.10 build environment
docker run -v $(pwd):/var/task javiortizmol/docker-lambda:python3.10-build-x86_64
# Python 3.11 build environment
docker run -v $(pwd):/var/task javiortizmol/docker-lambda:python3.11-build-x86_64
# Python 3.12 build environment
docker run -v $(pwd):/var/task javiortizmol/docker-lambda:python3.12-build-x86_64
# Install dependencies
docker run -v $(pwd):/var/task javiortizmol/docker-lambda:python3.12-build-x86_64 python3.12 -m pip install -r requirements.txt
### Serverless Framework Integration
For Serverless Framework users, you can use the [serverless-python-requirements](https://github.com/UnitedIncome/serverless-python-requirements) plugin to automatically build your Python dependencies using these Docker images:
```yaml
# serverless.yml
plugins:
- serverless-python-requirements
custom:
pythonRequirements:
dockerizePip: true
dockerImage: javiortizmol/docker-lambda:python3.12-build-x86_64
# Or use other Python versions:
# dockerImage: javiortizmol/docker-lambda:python3.11-build-x86_64
# dockerImage: javiortizmol/docker-lambda:python3.10-build-x86_64
# dockerImage: javiortizmol/docker-lambda:python3.9-build-x86_64
# dockerImage: javiortizmol/docker-lambda:python3.8-build-x86_64
./build-all.sh
./push-all.sh
✅ All Python runtimes (3.8-3.12) are now fully supported using the official AWS Lambda Python images from ECR Public.
public.ecr.aws/lambda/python:3.X as base for all versionspipx, virtualenv, pipenv, poetryawscli, aws-lambda-builders, aws-sam-cligcc, make, git, wget, and other build toolsdocker-lambda/
├── base/ # Base Lambda images
│ ├── 1-base-2-x86_64/ # Core Lambda base
│ └── 2-build-2-x86_64/ # Build environment base
├── runtimes/ # Runtime-specific images
│ ├── 0-provided.al2-x86_64/ # Custom runtime
│ ├── 1-python3.8-x86_64/ # Python 3.8 runtime ✅
│ ├── 2-python3.9-x86_64/ # Python 3.9 runtime ✅
│ ├── 3-python3.10-x86_64/ # Python 3.10 runtime ✅
│ ├── 4-python3.11-x86_64/ # Python 3.11 runtime ✅
│ └── 5-python3.12-x86_64/ # Python 3.12 runtime ✅
├── build-all.sh # Build all images
├── push-all.sh # Push all images
└── README.md # This file
runtimes/X-python3.X-x86_64/1-run/ and 2-build/ subdirectoriesFROM public.ecr.aws/lambda/python:3.XENTRYPOINT []build-all.sh and push-all.sh scripts# Test Python 3.8 runtime
docker run --rm javiortizmol/docker-lambda:python3.8-x86_64 python3.8 --version
# Test Python 3.9 runtime
docker run --rm javiortizmol/docker-lambda:python3.9-x86_64 python3.9 --version
# Test Python 3.10 runtime
docker run --rm javiortizmol/docker-lambda:python3.10-x86_64 python3.10 --version
# Test Python 3.11 runtime
docker run --rm javiortizmol/docker-lambda:python3.11-x86_64 python3.11 --version
# Test Python 3.12 runtime
docker run --rm javiortizmol/docker-lambda:python3.12-x86_64 python3.12 --version
# Test build environments
docker run --rm javiortizmol/docker-lambda:python3.8-build-x86_64 python3.8 -m pip --version
docker run --rm javiortizmol/docker-lambda:python3.9-build-x86_64 python3.9 -m pip --version
docker run --rm javiortizmol/docker-lambda:python3.10-build-x86_64 python3.10 -m pip --version
docker run --rm javiortizmol/docker-lambda:python3.11-build-x86_64 python3.11 -m pip --version
docker run --rm javiortizmol/docker-lambda:python3.12-build-x86_64 python3.12 -m pip --version
Content type
Image
Digest
sha256:424df0b8e…
Size
652.4 MB
Last updated
about 1 year ago
docker pull javiortizmol/docker-lambda:python3.12-build-x86_64-202508041106