fix: pass explicit docker runtime in acceptance tests#1160
Conversation
oats hardcodes `docker compose` to run services, so the build step must also use Docker. Without this, CI runners with both Podman and Docker installed may build with Podman, but the image is invisible to Docker's compose — causing acceptance test timeouts. Adds an optional second argument to build-lgtm.sh for runtime override.
There was a problem hiding this comment.
Pull request overview
This PR makes acceptance tests resilient on systems where both Docker and Podman are installed by allowing the LGTM build script to explicitly select the container runtime, and then forcing Docker for acceptance tests (since oats orchestrates via docker compose).
Changes:
- Add an optional runtime override argument to
build-lgtm.sh. - Force Docker in the acceptance test task by passing
dockerexplicitly to the build step.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| build-lgtm.sh | Adds a second optional argument to override runtime selection logic. |
| .mise/tasks/acceptance-tests.sh | Forces Docker for the LGTM image build used by oats. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Rename RUNTIME_OVERRIDE → CONTAINER_RUNTIME_OVERRIDE - Validate override against docker|podman allowlist - Quote "$RUNTIME" invocation to prevent word-splitting - Call ./build-lgtm.sh directly instead of mise task (which only accepts one positional arg)
There was a problem hiding this comment.
Pull request overview
This PR makes acceptance tests resilient on CI runners where both Docker and Podman are installed by allowing build-lgtm.sh to explicitly select a container runtime, then forcing Docker for acceptance tests since oats uses docker compose.
Changes:
- Added an optional container runtime override argument (
docker/podman) tobuild-lgtm.sh. - Updated acceptance tests to force building the image with Docker.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| build-lgtm.sh | Adds an explicit runtime override to ensure the image is built with the runtime expected by downstream tooling. |
| .mise/tasks/acceptance-tests.sh | Forces Docker for acceptance tests to match oats’ Docker Compose orchestration behavior. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
build-lgtm.shfor explicit runtime override (e.g../build-lgtm.sh latest docker)dockerexplicitly, becauseoatshardcodesdocker composeto orchestrate servicesProblem
On CI runners (Ubuntu 24.04) where both Docker and Podman are installed, if
build-lgtm.shuses Podman butoatsrunsdocker compose, the built image is invisible to Docker — causing acceptance test timeouts (connection refused).This is currently not an issue on
main(Docker-first preference), but becomes one when #1158 lands (Podman-first preference). This PR makes the acceptance tests resilient regardless of the default preference order.Test plan
./build-lgtm.sh lateststill auto-detects (no regression)./build-lgtm.sh latest dockerforces Docker./build-lgtm.sh latest podmanforces Podman