Skip to content

Docker Compose

Docker Compose CI on GitHub Actions

Integration tests wait several minutes for the compose stack to become healthy.

4m → 45s
Stack ready
16m → 5m
Suite

Integration tests wait several minutes for the compose stack to become healthy.

Why it happens

Every image is pulled fresh and services start without dependency-aware health gating.

What to change

  1. Use a registry pull-through cache so images are local
  2. Define healthchecks and depends_on conditions so tests start the moment services are ready
  3. Run the stack on a runner with local NVMe — database initialisation is disk-bound

Docker Compose on runnerhut

yaml
jobs:
integration:
runs-on: runnerhut-8vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
- run: docker compose up -d --wait
- run: npm run test:integration
A working starting point

The only runnerhut-specific line is `runs-on: runnerhut-8vcpu-ubuntu-2404`. Everything else is standard GitHub Actions — the same actions, the same secrets and the same permissions model you use today.

Your next build could be twice as fast, at half the price

Start free. Migrating away is the same one line, and we publish that diff too.