By default, many of the starter projects have a
Dockerfile whose base image is something like
This is a multi-platform base image used internally by Broadleaf to create sample images for its various projects.
1.7.4 may be using an older base image such as
These are deprecated.
Broadleaf’s base images are not intended to be used by clients directly:
Updates to these images and new tags are not announced
Updates to these images are not guaranteed backwards compatible or stable
Use of the images requires authentication to the Broadleaf Docker registry
Use of an old base image may result in falling behind in security updates
We strongly advise clients create, use, and maintain their own base images instead of relying on Broadleaf’s base image.
For your reference only, below we have provided an example of source components used to create the Broadleaf base image.
We build this image for multiple platforms using
# Used as a base image that other Spring Boot-based
# docker containers can be based off of.
# This is an official image with multi-platform support.
# OS is Ubuntu (at the time of writing, there is no multi-platform Alpine image)
# Importantly, this supports 'linux/amd64' and 'linux/arm64/v8'
# See https://hub.docker.com/_/eclipse-temurin
ADD ./supporting/run-app.sh run-app.sh
RUN chmod u+x "run-app.sh"
# Use the 'exec form' of entrypoint to ensure signals like 'KILL' are forwarded to the running process.
# Used as the 'entrypoint' script in base images to start a Spring Boot application.
if [ "$DEBUG_PORT" ]; then
export JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:$DEBUG_PORT"
export JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
# Moved into a shell script because the above 'export' statements cannot be retrieved
# between multiple statements in a Dockerfile
echo "Starting Java with the arguments '$JAVA_OPTS'"
# Use 'exec' to ensure the running process responds to signals like 'KILL'
# This command assumes the image will _not_ use a Spring Boot fat JAR and will instead
# run something like 'java -Djarmode=layertools -jar app.jar extract' to pre-explode the JAR
# contents and copy them directly.
exec java $JAVA_OPTS org.springframework.boot.loader.JarLauncher