Skip to content

Add podman-based integration test runner#11

Merged
markmnl merged 4 commits into
mainfrom
podman
Jul 2, 2026
Merged

Add podman-based integration test runner#11
markmnl merged 4 commits into
mainfrom
podman

Conversation

@markmnl

@markmnl markmnl commented Jul 1, 2026

Copy link
Copy Markdown
Owner

test/run-tests-podman.sh shims docker -> podman and delegates to run-tests.sh, working around several podman-compose (1.6.0) quirks (broken !override variable interpolation, --wait hanging on one-shot containers, hyphen vs underscore container naming).

Also fixes issues that affect podman regardless of the wrapper:

  • add :z SELinux relabeling to read-only bind mounts so rootless podman on enforcing SELinux hosts can read them
  • fmsg-webapi now creates/chowns /opt/fmsg/data like fmsgd, closing a race where whichever container touches the shared named volume first seeds its ownership
  • simplify the test compose override's depends_on to short form and drop the certbot profile gate, which podman-compose can't parse/ resolve correctly

markmnl added 4 commits July 1, 2026 20:04
test/run-tests-podman.sh shims docker -> podman and delegates to
run-tests.sh, working around several podman-compose (1.6.0) quirks
(broken !override variable interpolation, --wait hanging on one-shot
containers, hyphen vs underscore container naming).

Also fixes issues that affect podman regardless of the wrapper:
- add :z SELinux relabeling to read-only bind mounts so rootless
  podman on enforcing SELinux hosts can read them
- fmsg-webapi now creates/chowns /opt/fmsg/data like fmsgd, closing a
  race where whichever container touches the shared named volume
  first seeds its ownership
- simplify the test compose override's depends_on to short form and
  drop the certbot profile gate, which podman-compose can't parse/
  resolve correctly
Collapsing fmsgd/fmsg-webapi depends_on to short-list form dropped
the postgres service_healthy condition, letting fmsgd race postgres
on startup under Docker Compose. Restore the long form with
conditions in the shared compose file, and have the podman shim
flatten it back to a short list (preserving the !override tag, which
the previous flattening dropped and which let podman-compose merge in
a stale certbot dependency, causing an intermittent
"container state improper" failure on the second stack).
The podman commit dropped `profiles: ["certbot"]` from the stubbed
certbot service to work around a podman-compose parse issue. Without
the profile gate, `docker compose up` starts certbot by default, and
since its stub entrypoint exits immediately by design, `--wait`
treats that expected exit as an unexpected failure and aborts the
whole stack start-up. Restore the profile gate for Docker Compose and
have the podman shim strip it, since podman-compose can't parse it
and doesn't need it (the shim already drops --wait entirely).
@markmnl markmnl merged commit 0d26d89 into main Jul 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant