diff --git a/Dockerfile b/Dockerfile
index 7c0e7e4..f697014 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,9 +1,24 @@
+#
+# Build
+#
+FROM maven:3.9.7-eclipse-temurin-21-alpine AS build
+ENV HOME=/usr/app
+RUN mkdir -p $HOME
+WORKDIR $HOME
+ADD . $HOME
+RUN mvn -f $HOME/pom.xml clean compile assembly:single
+
+
+#
+# Package
+#
FROM eclipse-temurin:21-jre-alpine
LABEL authors="B00tLoad_"
-
+ARG JAR_FILE=/usr/app/target/*.jar
+RUN apk --no-cache add curl
RUN mkdir -p /opt/app
RUN mkdir -p /data/b00tload-tools/snowflake
-
-COPY target/SnowflakeService-jar-with-dependencies.jar /opt/app
+HEALTHCHECK CMD curl -f http://localhost:9567/health || exit 1
+COPY --from=build $JAR_FILE /opt/app
CMD ["java", "-jar", "/opt/app/SnowflakeService-jar-with-dependencies.jar", "--docker"]
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 40915fa..0fa0d50 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
space.b00tload.services
SnowflakeService
- 1.0.0
+ 1.1.0
SnowflakeService
A tool/microservice to centrally generate snowflake IDs.
@@ -76,7 +76,7 @@
io.javalin
javalin
- 6.1.3
+ 6.1.6
com.aayushatharva.brotli4j
@@ -86,7 +86,7 @@
com.google.code.gson
gson
- 2.10.1
+ 2.11.0
@@ -108,7 +108,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.6.3
+ 3.7.0
diff --git a/src/main/java/space/b00tload/services/snowflake/SnowflakeService.java b/src/main/java/space/b00tload/services/snowflake/SnowflakeService.java
index 8a5494e..822bd67 100644
--- a/src/main/java/space/b00tload/services/snowflake/SnowflakeService.java
+++ b/src/main/java/space/b00tload/services/snowflake/SnowflakeService.java
@@ -72,6 +72,11 @@ public class SnowflakeService {
LoggerFactory.getLogger(config.getClass()).info("{} served in {}ms to {}(UA: \"{}\")", ctx.fullUrl(), executionTimeMs, ctx.req().getRemoteAddr(), ctx.userAgent());
});
});
+ endpointServer.addEndpoint(new Endpoint(HandlerType.GET, "health", ctx -> {
+ JsonObject ret = new JsonObject();
+ ret.addProperty("status", "UP");
+ ctx.status(200).result(ret.toString()).contentType(ContentType.APPLICATION_JSON);
+ }));
endpointServer.addEndpoint(new Endpoint(HandlerType.GET, "generate", ctx -> {
JsonObject ret = new JsonObject();
ret.addProperty("id", SnowflakeIDGenerator.getInstance().generateID());