Docker Compose Version Sync

Docker Compose files in src/main/docker/ reference specific image versions so a developer can bring the stack up locally. This page explains why those versions are no longer synchronised automatically, and how to update them by hand.

The sync-docker-versions autotask is retired. It no longer runs in any active repository.

src/main/docker/dev.yml is now a plain, manually-maintained developer convenience file. It will drift from <revision> in pom.xml, and that is expected and harmless — nothing deploys from it.

Do not add sync-docker-versions.yml to a project.

Why it was removed

The autotask committed a [AutoTask] Sync Docker image versions with POM change back to the branch whenever pom.xml moved. That produced two distinct release failures.

1. GH006 Protected branch update failed on main. The push-main variant tried to push its sync commit directly to main, which is a protected branch. In membership-ui this broke releases 2.0.1 through 2.0.6 — every one of them failed on that step. Only 2.0.0 ever completed. Commit 1d524bb removed the job from push-main.yml, but left the develop-side job in place.

2. A recurring dev.yml merge conflict during gitflow:release-finish. The develop-side job kept bumping dev.yml to <revision>-SNAPSHOT after every push, while main retained the stale value written by the previous release’s run of the same autotask. Both sides had therefore diverged from the merge base on the same file, so git refused to auto-merge when gitflow:release-finish merged the release tag back into develop. This is what broke registration-portal 2.3.22.

The underlying problem is structural: a bot that writes to a file on one branch, in a repository whose release process merges that branch to another and back, will eventually produce a conflict on that file. Scoping it to develop only narrowed the window; it did not close it.

Where it stands per repository

Repository Autotask Notes

event-admin-service

Never had it

No src/main/docker/dev.yml gateway pairing to maintain.

ems-admin-portal

Never had it

Bootstrapped after the pattern was abandoned.

event-registration-ui

Removed

PR #56 (41659b93), 2026-04-22. Composite action retained for manual use.

membership-ui

Removed

PR #116, 2026-08-11. Composite action retained for manual use.

event-admin-ui

Still present

Legacy, superseded by ems-admin-portal. Out of pattern — do not copy it.

Updating the compose files by hand

Edit the image tag directly when you want a newer image:

services:
  membership-gateway:
    image: christhonie/membership-ui:2.0.11-SNAPSHOT

Or drive it from the POM in one line:

REVISION=$(awk -F'[><]' '/<revision>/{print $3; exit}' pom.xml)
ADMIN_VERSION=$(awk -F'[><]' '/<admin-service.version>/{print $3; exit}' pom.xml)
sed -i.bak \
  -e "s|christhonie/membership-ui:[^[:space:]]*|christhonie/membership-ui:${REVISION}|g" \
  -e "s|christhonie/event-admin-service:[^[:space:]]*|christhonie/event-admin-service:${ADMIN_VERSION}|g" \
  src/main/docker/dev.yml src/main/docker/admin-service.yml \
  && rm src/main/docker/*.bak

Commit the result with your change, or on its own. There is no automation behind it.

The composite action

event-registration-ui and membership-ui retain the composite action at .github/actions/sync-docker-versions/ for on-demand use. Each carries its own README.md. No workflow calls it, and none should — wiring it back into push-dev.yml or push-main.yml reintroduces both failure modes above.

Both copies behave identically. The action edits the compose files and stops there; committing and pushing is opt-in behind a commit-and-push input that defaults to 'false':

- uses: ./.github/actions/sync-docker-versions
  with:
    commit-and-push: 'true'

Enable commit-and-push only on a branch you are allowed to push to, and never on main. The push half is exactly what produced the GH006 rejection described above.

The default was true in both repos until 2026-08-11, while each README claimed nothing would commit automatically — so a manual run from a develop or main checkout would have attempted the very push the autotask was retired for. Fixed in membership-ui d2db5bd and event-registration-ui 9402571.