Skip to content
Menu
Docker builds and services

Runners

Docker builds and services

Docker, Docker Compose and Buildx are installed on every Sengi runner. Image builds, Compose stacks and service containers work without changes.

Build an image

jobs:
  image:
    runs-on: sengi-premium-4-ubuntu-2404
    steps:
      - uses: actions/checkout@v4
      - uses: docker/setup-buildx-action@v3
      - uses: docker/build-push-action@v6
        with:
          context: .
          push: false
          cache-from: type=gha
          cache-to: type=gha,mode=max

type=gha stores layers in Sengi's own cache, so the next build reuses them. See Docker layer caching.

Run a Compose stack

      - run: docker compose up -d --wait
      - run: npm test
      - run: docker compose down

Service containers

Job services: work as they do on GitHub's runners. Map the port and connect on localhost:

jobs:
  test:
    runs-on: sengi-basic-2-ubuntu-2404
    services:
      postgres:
        image: postgres:17
        env:
          POSTGRES_PASSWORD: postgres
        ports:
          - 5432:5432
    steps:
      - uses: actions/checkout@v4
      - run: npm test

Choosing a size

Image builds are CPU and disk heavy. Premium's local NVMe and faster CPUs built our production test image about 1.9× faster than GitHub's 4 vCPU runner. Large images also need disk: see runner sizes for free space per size.