diff --git a/registries/h2/Dockerfile b/registries/h2/Dockerfile new file mode 100644 index 0000000..0211b32 --- /dev/null +++ b/registries/h2/Dockerfile @@ -0,0 +1,34 @@ +# 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"] \ No newline at end of file