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());