summaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile36
1 files changed, 36 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..2d38c6a
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,36 @@
+FROM gradle:8.1-jdk17 AS build
+WORKDIR /home/gradle/src
+ENV GRADLE_USER_HOME /gradle
+
+COPY build.gradle.kts settings.gradle.kts ./
+
+COPY --chown=gradle:gradle . .
+RUN gradle build --info && \
+ java -Djarmode=layertools -jar build/libs/*.jar extract
+
+FROM gcr.io/distroless/java17:nonroot
+WORKDIR /opt/kafka-streams-template
+COPY --from=build /home/gradle/src/dependencies/ ./
+COPY --from=build /home/gradle/src/spring-boot-loader/ ./
+COPY --from=build /home/gradle/src/application/ ./
+COPY HealthCheck.java .
+
+USER nonroot
+ARG GIT_REF=""
+ARG GIT_URL=""
+ARG BUILD_TIME=""
+ARG VERSION=0.0.0
+ENV APP_VERSION=${VERSION} \
+ SPRING_PROFILES_ACTIVE="prod"
+ENTRYPOINT ["java", "-XX:MaxRAMPercentage=90", "org.springframework.boot.loader.JarLauncher"]
+
+HEALTHCHECK --interval=25s --timeout=3s --retries=2 CMD ["java", "HealthCheck.java", "||", "exit", "1"]
+
+LABEL org.opencontainers.image.created=${BUILD_TIME} \
+ org.opencontainers.image.authors="Paul-Chrisitan Volkmer, Jakub Lidke" \
+ org.opencontainers.image.source=${GIT_URL} \
+ org.opencontainers.image.version=${VERSION} \
+ org.opencontainers.image.revision=${GIT_REF} \
+ org.opencontainers.image.vendor="" \
+ org.opencontainers.image.title="etl-processor" \
+ org.opencontainers.image.description="Relay application between Onkostar and bwHc for pseudonymization or anonymization of patient data and profide additional monitoring of processed data."