This repository contains the Dockerfiles and GitHub workflows to build the Formcentric Java Base images. The images are the starting point to run Java-based Formcentric applications in containers.
The base image contains a simple app.jar to demonstrate the default entrypoint.
Running the image without any arguments:
> docker run ghcr.io/formcentric/java-base:21-jre
Welcome to the Formcentric Java Base image.
Java Version : 21.0.6 (Eclipse Adoptium)
Java Home : /opt/java/openjdk
Java Temp Dir : /tmp
User Name : formcentric
Working Dir : /formcentric
OS : Linux 6.11.0-18-generic
Architecture : amd64
JVM Arguments
(1) -XX:-UsePerfData
(2) -XX:+UseContainerSupport
(3) -Djava.security.egd=file:/dev/./urandom
Command Line Arguments
- none -
Passing JVM and command line arguments:
> docker run -e JAVA_OPTS=-Djava.io.tmpdir=/my-tmp ghcr.io/formcentric/java-base:21-jre --server.port=8443
Welcome to the Formcentric Java Base image.
Java Version : 21.0.6 (Eclipse Adoptium)
Java Home : /opt/java/openjdk
Java Temp Dir : /my-tmp
User Name : formcentric
Working Dir : /formcentric
OS : Linux 6.11.0-18-generic
Architecture : amd64
JVM Arguments
(1) -XX:-UsePerfData
(2) -Djava.io.tmpdir=/my-tmp
(3) -XX:+UseContainerSupport
(4) -Djava.security.egd=file:/dev/./urandom
Command Line Arguments
(1) --server.port=8443
To run your own application with the base image, just overwrite the default /formcentric/app.jar in your
own Dockerfile:
FROM ghcr.io/formcentric/java-base:25-jre
EXPOSE 8080
COPY --chown=formcentric:formcentric my-application.jar /formcentric/app.jarFormcentric base images are built directly from the official Eclipse Temurin (OpenJDK) binaries published by Adoptium and come in the following flavors:
ghcr.io/formcentric/java-base:25-jreghcr.io/formcentric/java-base:25-jdk
ghcr.io/formcentric/java-base:21-jreghcr.io/formcentric/java-base:21-jdk
ghcr.io/formcentric/java-base:17-jreghcr.io/formcentric/java-base:17-jdk
Each temurin/<version>/ directory holds the JVM install steps needed to build our own image, but no
Dockerfile — it is generated at build time by vendoring the matching build steps from
adoptium/containers and appending temurin/Dockerfile.footer.
To build a Dockerfile locally, e.g. for Java 21 JDK:
> scripts/generate-temurin-dockerfile.sh 21 jdk temurin/21
> cp app/target/app.jar temurin/21
> docker build temurin/21