# Runner image

> What a Skipbox VM has installed, the user a job runs as, and how to add the tools GitHub's ubuntu-latest has and Skipbox doesn't.

Every Skipbox VM is Ubuntu 24.04 on x64, whatever its size.

## What's installed

| Tool | Version |
|---|---|
| Docker CE | from Docker's own apt repository |
| git, build-essential, jq, curl, unzip | Ubuntu's packages |
| Node.js | 22 |
| Python | 3.12 |
| The GitHub Actions runner | pinned, checked by SHA-256 |

The job runs as the user `runner`, with passwordless `sudo`, as on GitHub's runners. So `sudo apt-get install` works in a step.

## Tools that aren't installed

GitHub's `ubuntu-latest` image has many more tools preinstalled. On Skipbox, add the ones a job needs with their setup actions:

```yaml
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-java@v4
        with:
          distribution: temurin
          java-version: "21"
      - uses: actions/setup-go@v5
        with:
          go-version: stable
```

Or install a package in a step:

```yaml
      - run: sudo apt-get update && sudo apt-get install -y postgresql-client
```

## Docker

Docker runs in the VM, so `docker build`, `docker run`, service containers and container jobs work. Images are pulled from Docker Hub anonymously from the VM's own address.

## Architecture

Only x64. There are no Arm VMs, and no Windows or macOS.

Updated 2026-11-09 · https://docs.skipbox.dev/runner-image
