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
If you're looking at any RWX run definitions which contain an os and tag
under the base configuration, that approach is now deprecated.
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.