Specifying runtime environment images
A runtime environment image is a Docker container within which CodeCatalyst runs workflow actions. The Docker container runs on top of your chosen compute platform, and includes an operating system and extra tools that a workflow action might need, such as the AWS CLI, Node.js, and .tar.
By default, workflow actions will run on one of the active images that are supplied and maintained by CodeCatalyst. Only build and test actions support custom images. For more information, see Assigning a custom runtime environment Docker image to an action.
Topics
Active images
Active images are runtime environment images that are fully supported by CodeCatalyst and include preinstalled tooling. There are currently two sets of active images: one released in March 2024, and another released in November 2022.
Whether an action uses a March 2024 or November 2022 image depends on the action:
-
Build and test actions that are added to a workflow on or after March 26, 2024 will include a
Container
section in their YAML definition that explicitly specifies a March 2024 image. You can optionally remove theContainer
section to revert back to the November 2022 image. -
Build and test actions that were added to a workflow prior to March 26, 2024 will not include a
Container
section in their YAML definition, and consequently will use a November 2022 image. You can keep the November 2022 image, or you can upgrade it. To upgrade the image, open the action in the visual editor, choose the Configuration tab, and then select the March 2024 image from the Runtime environment docker image drop-down list. This selection will add aContainer
section to the action's YAML definition that is populated with the appropriate March 2024 image. -
All other actions will use either a November 2022 image or a March 2024 image. For more information, see the action's documentation.
March 2024 images
The March 2024 images are the latest images provided by CodeCatalyst. There is one March 2024 image per compute type/fleet combination.
The following table shows the tools installed on each March 2024 image.
March 2024 image tools | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tool | CodeCatalyst Amazon EC2 for Linux x86_64 -
CodeCatalystLinux_x86_64:2024_03 |
CodeCatalyst Lambda for Linux x86_64 -
CodeCatalystLinuxLambda_x86_64:2024_03 |
CodeCatalyst Amazon EC2 for Linux Arm64 -
CodeCatalystLinux_Arm64:2024_03 |
CodeCatalyst Lambda for Linux Arm64 -
CodeCatalystLinuxLambda_Arm64:2024_03 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS CLI | 2.15.17 | 2.15.17 | 2.15.17 | 2.15.17 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS Copilot CLI | 1.32.1 | 1.32.1 | 1.32.1 | 1.32.1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Docker | 24.0.9 | N/A | 24.0.9 | N/A | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Docker Compose | 2.23.3 | N/A | 2.23.3 | N/A | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Git | 2.43.0 | 2.43.0 | 2.43.0 | 2.43.0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Go | 1.21.5 | 1.21.5 | 1.21.5 | 1.21.5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gradle | 8.5 | 8.5 | 8.5 | 8.5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Java | Corretto17 | Corretto17 | Corretto17 | Corretto17 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Maven | 3.9.6 | 3.9.6 | 3.9.6 | 3.9.6 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js | 18.19.0 | 18.19.0 | 18.19.0 | 18.19.0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
npm | 10.2.3 | 10.2.3 | 10.2.3 | 10.2.3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python | 3.9.18 | 3.9.18 | 3.9.18 | 3.9.18 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python3 | 3.11.6 | 3.11.6 | 3.11.6 | 3.11.6 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pip | 22.3.1 | 22.3.1 | 22.3.1 | 22.3.1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.NET | 8.0.100 | 8.0.100 | 8.0.100 | 8.0.100 |
November 2022 images
There is one November 2022 image per compute type/fleet combination. There is also a November 2022 Windows image available with the build action if you've configured a provisioned fleet.
The following table shows the tools installed on each November 2022 image.
November 2022 image tools | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tool | CodeCatalyst Amazon EC2 for Linux x86_64 -
CodeCatalystLinux_x86_64:2022_11 |
CodeCatalyst Lambda for Linux x86_64 -
CodeCatalystLinuxLambda_x86_64:2022_11 |
CodeCatalyst Amazon EC2 for Linux Arm64 -
CodeCatalystLinux_Arm64:2022_11 |
CodeCatalyst Lambda for Linux Arm64 -
CodeCatalystLinuxLambda_Arm64:2022_11 |
CodeCatalyst Amazon EC2 for Windows x86_64 -
CodeCatalystWindows_x86_64:2022_11 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS CLI | 2.15.17 | 2.15.17 | 2.15.17 | 2.15.17 | 2.13.19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AWS Copilot CLI | 0.6.0 | 0.6.0 | N/A | N/A | 1.30.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Docker | 23.01 | N/A | 23.0.1 | N/A | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Docker Compose | 2.16.0 | N/A | 2.16.0 | N/A | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Git | 2.40.0 | 2.40.0 | 2.39.2 | 2.39.2 | 2.42.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Go | 1.20.2 | 1.20.2 | 1.20.1 | 1.20.1 | 1.19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gradle | 8.0.2 | 8.0.2 | 8.0.1 | 8.0.1 | 8.3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Java | Corretto17 | Corretto17 | Corretto17 | Corretto17 | Corretto17 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Maven | 3.9.4 | 3.9.4 | 3.9.0 | 3.9.0 | 3.9.4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js | 16.20.2 | 16.20.2 | 16.19.1 | 16.14.2 | 16.20.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
npm | 8.19.4 | 8.19.4 | 8.19.3 | 8.5.0 | 8.19.4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python | 3.9.15 | 2.7.18 | 3.11.2 | 2.7.18 | 3.9.13 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python3 | N/A | 3.9.15 | N/A | 3.11.2 | N/A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pip | 22.2.2 | 22.2.2 | 23.0.1 | 23.0.1 | 22.0.4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.NET | 6.0.407 | 6.0.407 | 6.0.406 | 6.0.406 | 6.0.414 |
What if an active image doesn't include the tools I need?
If none of the active images supplied by CodeCatalyst include the tools you need, you have a couple of options:
-
You can provide a custom runtime environment Docker image that includes the necessary tools. For more information, see Assigning a custom runtime environment Docker image to an action.
Note
If you want to provide a custom runtime environment Docker image, make sure that your custom image has Git installed in it.
-
You can have your workflow's build or test action install the tools you need.
For example, you could include the following instructions in the
Steps
section of the build or test action's YAML code:Configuration: Steps: - Run: ./
setup-script
The
setup-script
instruction would then run the following script to install the Node package manager (npm):#!/usr/bin/env bash echo "Setting up environment" touch ~/.bashrc curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash source ~/.bashrc nvm install v16.1.0 source ~/.bashrc
For more information about the build action YAML, see Build and test actions YAML.
Assigning a custom runtime environment Docker image to an action
If you don't want to use an Active image supplied by CodeCatalyst, you can provide a custom runtime environment Docker image. If you want to provide a custom image, make sure it has Git installed in it. The image can reside in Docker Hub, Amazon Elastic Container Registry, or any public repository.
To learn how to create a custom Docker image, see Containerize an
application
Use the following instructions to assign your custom runtime environment Docker image to an action. After specifying an image, CodeCatalyst deploys it to your compute platform when the action starts.
Note
The following actions do not support custom runtime environment Docker images: Deploy AWS CloudFormation stack, Deploy to ECS, and GitHub Actions. custom runtime environment Docker images also do not support the Lambda compute type.
Examples
The following examples show how to assign a custom runtime environment Docker image to an action in the workflow definition file.
Topics
Example: Using a custom runtime environment Docker image to add support for Node.js 18 with Amazon ECR
The following example shows how to use a custom runtime environment Docker image
to add support for Node.js 18 with Amazon ECR
Configuration: Container: Registry: ECR Image: public.ecr.aws/amazonlinux/amazonlinux:2023
Example: Using a custom runtime environment Docker image to add support for Node.js 18 with Docker Hub
The following example shows how to use a custom runtime environment Docker image
to add support for Node.js 18 with Docker
Hub
Configuration: Container: Registry: DockerHub Image: node:18.18.2