Dockerfile for the Docker image used to build file-object-store.
Contains Java 25 (Eclipse Temurin) + Ant. Gradle is provided by the Gradle
wrapper inside the file-object-store project, so it is not installed in the image.
file-object-store has no front_end, so (unlike the limelight/proxl build images)
no Node is installed.
sudo docker image build -t mriffle/build-file-object-store ./
sudo docker run --rm -it --user $(id -u):$(id -g) \
-v `pwd`:`pwd` -w `pwd` --env HOME=. \
--entrypoint ant mriffle/build-file-object-store -f ant_build_all.xml
On a GitHub release, .github/workflows/docker-release.yml builds and pushes the image
to ghcr.io/yeastrc/file-object-store-build-docker, tagged with the full version
(e.g. 2.0.0), major.minor (2.0), major (2), and latest.
That published image is what file-object-store consumes:
.github/workflows/push.yml→ runs the build inside it- the file-object-store
Dockerfilebuilder stage → compiles the war in it
replacing the previous dependency on mriffle/build-spectr:latest.
Consumers pin the major tag (e.g. :2) rather than :latest, so existing
file-object-store commits keep building against the same image even after a new
major build image (:3) is published — moving to a new major is then an explicit
opt-in, not a surprise.