Base Layer

Runs must be configured with a base, which is the container image to use for the RWX run, along with an optional configuration package to apply.

Deprecated Configuration

See the migration notes.

Configuration

Configure the base layer by specifying the base key with an image and config.

The image specifies the base container image, and the config specifies an RWX package that provides commonly used packages, a few quality-of-life configuration changes, and the ability to run docker.

base:
  image: ubuntu:24.04
  config: rwx/base 1.0.0

tasks:
  - key: check-os
    run: cat /etc/os-release

Config None

You can also skip the config by setting a value of none.

This is primarily only used when building container images.

base:
  image: ubuntu:24.04
  config: none

tasks:
  - key: check-os
    run: cat /etc/os-release

Architecture

You can also specify the CPU architecture as either x86_64 (the default) or arm64

base:
  image: ubuntu:24.04
  config: rwx/base 1.0.0
  arch: arm64

tasks:
  - key: uname
    run: uname --processor

Supported Images

You can use any image that you'd like, but rwx/base is currently only compatible with ubuntu:20.04, ubuntu:22.04, and ubuntu:24.04.

CLI

rwx resolve base will automatically insert the default base configuration into all run definitions (requires version 1.4 or greater of the RWX CLI)

Embedded Runs

Embedded runs can use a different base than the runs which embed them.

If a run only contains embedded runs, then the base configuration does not have any effect or need to be specified since the embedded runs must specify their own base.

Tool Caches

Tool caches are unique to each base image. Specifying the same tool-cache configuration with a different base image will result in a different cache.