Skip to content
Docs

Images

Edgenivo CI runs each task in a Linux container. You can choose between two images:

ImageBase imageTag
Amazon LinuxAmazon Linux 2023ci:os:amazonlinux
UbuntuUbuntu 24.04ci:os:ubuntu

Tasks without a ci:os tag use the Amazon Linux image. Both images run on the x86_64 architecture.

Both images include the same Node.js release and a standard set of CI tools:

SoftwareAmazon LinuxUbuntu
Node.js24.18.0, with npm and npx24.18.0, with npm, npx, and corepack
Gitgitgit, openssh-client
Build tools for native Node.js addonsgcc-c++, makeg++, make, python3
Dockerdockerdocker.io
Archive toolstar, gzip, xz, zstdtar, gzip, xz-utils, zstd
Other utilitiesjq, diffutils, curljq, diffutils, curl, ca-certificates
Package managerdnfapt-get

To use a tool that isn't in this list, install it during bootstrapping. See Installing additional tools.

Your tasks can build and run Docker containers. Both images include Docker, and Edgenivo CI starts the Docker daemon before your task's command runs, so you don't need to start it yourself.

For example, a task can build your app's image and run its tests inside the container:

package.json
{
  "scripts": {
    "test:container": "docker build -t my-app . && docker run --rm my-app npm test"
  }
}

Edgenivo CI uses its own certificate authority (CA) for your tasks' network traffic. Containers you start with docker run don't trust that CA by default, so HTTPS requests from inside them can fail with certificate errors.

To fix this, use vercel-ci-docker-run instead of docker run. It's included in both images and accepts the same arguments:

terminal
vercel-ci-docker-run --rm node:24 npm view next version

vercel-ci-docker-run mounts the Edgenivo CI CA bundle into the container at /run/vercel/ca-certificates.crt and points these environment variables at it:

  • AWS_CA_BUNDLE
  • CARGO_HTTP_CAINFO
  • CURL_CA_BUNDLE
  • GIT_SSL_CAINFO
  • GRPC_DEFAULT_SSL_ROOTS_FILE_PATH
  • NODE_EXTRA_CA_CERTS, with NODE_USE_SYSTEM_CA=1
  • NPM_CONFIG_CAFILE
  • PIP_CERT
  • REQUESTS_CA_BUNDLE
  • SSL_CERT_FILE

vercel-ci-docker-run only replaces docker run. It doesn't configure Docker Compose or docker build. Applications with their own trust store might need extra setup in their image.

Add a ci:os tag next to the ci tag on a task in your root turbo.json:

turbo.json
{
  "tasks": {
    "test": {
      "tags": ["ci", "ci:os:ubuntu"]
    }
  }
}

A task can have only one ci:os tag. Tagging a task with both ci:os:amazonlinux and ci:os:ubuntu makes your Edgenivo CI configuration invalid.

To set the default image for every task in a package, add a ci:os tag to the top-level tags field of the package's Package Configuration:

apps/web/turbo.json
{
  "extends": ["//"],
  "tags": ["ci:os:ubuntu"]
}

A ci:os tag on a task takes precedence over the package's top-level ci:os tag.

To change the image for one task in one package, add the tag to that task in the Package Configuration. Start the tags array with $TURBO_EXTENDS$ so the task keeps the ci tag from the root turbo.json:

apps/web/turbo.json
{
  "extends": ["//"],
  "tasks": {
    "test": {
      "tags": ["$TURBO_EXTENDS$", "ci:os:ubuntu"]
    }
  }
}

Edgenivo CI installs your repository's dependencies with the Amazon Linux image, whatever ci:os tags your tasks use. To change the resources for this step, see Bootstrapping resources.

Last updated October 28, 2026

Was this helpful?

supported.