Seed Build Images
Seed runs your builds inside a virtual machine and it’ll use a build image based on the Lambda runtime of your service. Below is a list of all the images in use:
- General Purpose Latest
- General Purpose v4.0
- General Purpose v3.0
- General Purpose v1.1
- Python 3.6
- Python 2.7
- Ruby 2.5
Changing the Build Image
By default, Seed will automatically select a build image for your service based on the runtime you have set in your serverless.yml
. However, Seed will not automatically update this when your runtime is updated. This is done to ensure that any scripts in your build spec are not affected by the build image change.
If you want to update the build image that a service in your app is using, head over to the service’s settings.
Note that, if a service has not been deployed yet, Seed will not have picked a build image.
You can also check which image was used for a specific build, by heading over to the logs for that build.
Running Locally
The build images used in Seed are hosted on Docker Hub — seedrun/build
These images are useful if you are trying to debug build issues. You can set up a Seed-like build environment locally to test your project.
To start the environment:
$ docker run --rm -it --privileged seedrun/build:general-purpose-5.0 bash
Make sure to select the build image your service is using.
The default working directory for builds in Seed is /tmp/seed/source
. To clone the source, run:
$ mkdir -p /tmp/seed
$ cd /tmp/seed
$ git clone https://github.com/my/repo source
$ cd source
Build Images
Below are the build images that are used and the types of services they are used for. A build image is chosen based on the Lambda runtime of the service.
General Purpose Latest
You should use the General Purpose Latest build image. It is regularly updated to the latest security patches and runtimes. The General Purpose Latest image is also pre-cached on our build machines.
Lambda runtimes: Node.js 18.x, Node.js 16.x, Python 3.11, Python 3.10, Go 1.x, Ruby 3.2, Java 17
OS: Ubuntu 22.04
Includes | Version |
---|---|
Node.js | 18.16 |
Python | 3.11 |
Ruby | 3.2 |
Go | 1.20 |
.NET Core | 6.0 |
Java | 17 |
PHP | 8.2 |
NPM | 9.5 |
PNPM | 8.7 |
YARN | 1.22 |
PIP | 23.1 |
Docker* | 23.0 |
Docker Compose* | 2.17 |
*Docker and Docker Compose need to be enabled.
If you want to use a different version of a package than the one that is on the build image, add the following to your build spec (seed.yml
):
Customizing Node Versions
Seed uses n to manage Node.js versions. To use a different version, update your seed.yml
with:
before_compile:
- n 18.14.0
Customizing Golang Versions
Seed uses goenv to manage Go versions. To use a different version:
before_compile:
- cd $HOME/.goenv && git pull && goenv install 1.16.4 && global 1.16.4
Customizing Python versions
Seed uses pyenv to manage Python versions. To use a different version:
before_compile:
- cd /root/.pyenv/plugins/python-build/../.. && git pull && pyenv install 3.11.4 && pyenv global 3.11.4
Customizing .NET versions
Seed uses env tool to manage .NET versions. To use a different version:
before_compile:
- /usr/local/bin/dotnet-install.sh -v 6.0.300
Customizing Npm Versions
You can install the version of npm you want in the same way. For example, if you wanted to use the latest version of npm, add the following.
before_compile:
- npm i -g npm@latest
Customizing Pip Versions
Update Pip to the latest version.
before_compile:
- pip install --upgrade pip
Alternatively, you can select the specific version of Pip you want.
before_compile:
- pip install --upgrade "pip==21.1.2"
General Purpose v4.0
Lambda runtimes: Python 3.9, Ruby 2.7, Java 11
OS: Ubuntu 20.04
Includes | Version |
---|---|
Node.js | 14 |
Python | 3.9 |
Ruby | 2.7 |
Go | 1.15 |
.NET Core | 5.0 |
Java | 11 |
PHP | 8.0 |
NPM | 6.14 |
YARN | 1.22 |
PIP | 20.3 |
Docker* | 19.03 |
Docker Compose* | 1.27 |
*Docker and Docker Compose need to be enabled.
General Purpose v3.0
Lambda runtimes: Node.js 12.x, Python 3.8, .NET Core 3.1
OS: Ubuntu 18.04
Includes | Version |
---|---|
Node.js | 12 |
Python | 3.8 |
Ruby | 2.7 |
Go | 1.14 |
.NET Core | 3.1 |
Java | 11 |
PHP | 7.4 |
NPM | 6.14 |
YARN | 1.22 |
PIP | 19.3 |
Docker* | 19.03 |
Docker Compose* | 1.24 |
*Docker and Docker Compose need to be enabled.
General Purpose v1.1
Lambda runtimes: Node.js 10.x, Python 3.7, Java 8
OS: Ubuntu 18.04
Includes | Version |
---|---|
Node.js | 10 |
Python | 3.7 |
Ruby | 2.6 |
Go | 1.13 |
.NET Core | 3.1 |
Java | 11 |
PHP | 7.3 |
NPM | 6.14 |
YARN | 1.22 |
PIP | 19.3 |
Docker* | 19.03 |
Docker Compose* | 1.24 |
*Docker and Docker Compose need to be enabled.
Python 3.6
Lambda runtime: Python 3.6
OS: Debian 9
Includes | Version |
---|---|
Node.js | 8.15 |
Python | 3.6 |
NPM | 6.1.0 |
YARN | 1.12.3 |
PIP | 9.0.1 |
Python 2.7
Lambda runtime: Python 2.7
OS: Debian 9
Includes | Version |
---|---|
Node.js | 8.15 |
Python | 2.7 |
NPM | 6.1.0 |
YARN | 1.12.3 |
PIP | 9.0.1 |
Ruby 2.5
Lambda runtime: Ruby 2.5
OS: Debian 9
Includes | Version |
---|---|
Node.js | 8.10 |
Ruby | 2.5 |
NPM | 6.1.0 |
YARN | 1.12.3 |
Deprecated Build Images
The following build images are no longer available for new services but might still be in use for existing services. If your services are still using the ones below, contact us to have them upgraded.
General Purpose v2.0
Upgrade to: General Purpose v3.0
OS: Ubuntu 18.04
Includes | Version |
---|---|
Node.js | 12 |
Python | 3.8 |
Ruby | 2.6 |
Go | 1.13 |
.NET Core | 3.0 |
Java | 11 |
PHP | 7.3 |
NPM | 6.13.4 |
YARN | 1.12.3 |
PIP | 19.3.1 |
Docker* | 19.03 |
Docker Compose* | 1.24 |
*Docker and Docker Compose need to be enabled.
General Purpose v1.0
Upgrade to: General Purpose v1.1
OS: Ubuntu 18.04
Includes | Version |
---|---|
Node.js | 10 |
Python | 3.7 |
Ruby | 2.6 |
Go | 1.13 |
.NET Core | 2.2 |
Java | 11 |
PHP | 7.3 |
NPM | 6.13.4 |
YARN | 1.12.3 |
PIP | 19.3.1 |
Docker* | 18.09 |
Docker Compose* | 1.24 |
*Docker and Docker Compose need to be enabled.
Python 3.7
Upgrade to: General Purpose v1.0
Lambda runtime: Python 3.7
OS: Debian 9
Includes | Version |
---|---|
Node.js | 8.15 |
Python | 3.7 |
NPM | 6.1.0 |
YARN | 1.12.3 |
PIP | 18.1 |
.NET Core 2.1
Upgrade to: General Purpose v1.0
Lambda runtime: .NET Core 2.1
OS: Debian 9
Includes | Version |
---|---|
Node.js | 8.10 |
.NET Core | 2.1 |
NPM | 6.1.0 |
YARN | 1.12.3 |
Help improve this page. Edit it with GitHub
Was this page helpful? Let us know via Twitter
Do your Serverless deployments take too long? Incremental deploys in Seed can speed it up 100x!
Learn More