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
Do not add |
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 |
|---|---|---|
|
Never had it |
No |
|
Never had it |
Bootstrapped after the pattern was abandoned. |
|
Removed |
PR #56 ( |
|
Removed |
PR #116, 2026-08-11. Composite action retained for manual use. |
|
Still present |
Legacy, superseded by |
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 The default was |
Related Documentation
-
GitHub Actions CI/CD - Pipeline architecture and the workflows that replaced this one
-
Docker Compose for Developers - Running the stack locally
-
Development Workflow - GitFlow branching and release process