Files
docker-infra/registries/h2/Dockerfile
T

34 lines
1.1 KiB
Docker

# Use a lightweight JRE base image
FROM amazoncorretto:21-alpine
# Define the H2 database version
ARG H2_VERSION=2.3.232
# Set up environment variables for the data directory
ENV H2_DATA=/opt/h2-data
# Create the necessary directories and set the working directory
RUN mkdir -p ${H2_DATA}
WORKDIR /opt/h2
# Download the H2 database JAR file
RUN wget -q "https://repo1.maven.org/maven2/com/h2database/h2/${H2_VERSION}/h2-${H2_VERSION}.jar" -O h2.jar
# Expose the standard ports:
# 8082: Web Console
# 9092: TCP Server
EXPOSE 8082 9092
# Define a volume to persist the database files, preventing data loss on container restart
VOLUME ${H2_DATA}
# Set the command to initialise and start the H2 server
# -webAllowOthers authorises external connections to the web console
# -tcpAllowOthers authorises external TCP connections
# -baseDir specifies the centre of the data storage
# -ifNotExists allows creating a new database automatically
CMD ["java", "-cp", "h2.jar", "org.h2.tools.Server", \
"-web", "-webAllowOthers", "-webPort", "8082", \
"-tcp", "-tcpAllowOthers", "-tcpPort", "9092", \
"-baseDir", "/opt/h2-data", \
"-ifNotExists"]