34 lines
1.1 KiB
Docker
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"] |