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=maxtype=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 downService 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 testChoosing 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.
