From ee2ed9c2338040fc51cc7f019580d8d81636ed9f Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 10:00:23 +0000 Subject: [PATCH 1/5] feat: add HEALTHCHECK to all Dockerfiles Adds a Docker HEALTHCHECK instruction to all four Dockerfiles so that orchestration tools (Docker Compose, Kubernetes, etc.) can detect when Floci is ready without requiring a custom healthcheck definition. Uses the existing /_floci/health endpoint with curl. Co-Authored-By: Matej Snuderl --- Dockerfile | 5 +++++ Dockerfile.jvm-package | 5 ++++- Dockerfile.native | 3 +++ Dockerfile.native-package | 5 ++++- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index afdca72a3..84adfb409 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,8 +19,13 @@ COPY --from=build /build/target/quarkus-app/ quarkus-app/ RUN mkdir -p /app/data VOLUME /app/data +RUN apk add --no-cache curl + EXPOSE 4566 6379-6399 +HEALTHCHECK --interval=5s --timeout=3s --retries=5 \ + CMD curl -f http://localhost:4566/_floci/health || exit 1 + ARG VERSION=latest ENV FLOCI_VERSION=${VERSION} diff --git a/Dockerfile.jvm-package b/Dockerfile.jvm-package index e3eee37a1..4df9b1554 100644 --- a/Dockerfile.jvm-package +++ b/Dockerfile.jvm-package @@ -21,6 +21,9 @@ COPY --chown=1001:root target/quarkus-app quarkus-app/ EXPOSE 4566 6379-6399 +HEALTHCHECK --interval=5s --timeout=3s --retries=5 \ + CMD curl -f http://localhost:4566/_floci/health || exit 1 + USER 1001 -ENTRYPOINT ["java", "-jar", "quarkus-app/quarkus-run.jar", "-Dquarkus.http.host=0.0.0.0"] \ No newline at end of file +ENTRYPOINT ["java", "-jar", "quarkus-app/quarkus-run.jar", "-Dquarkus.http.host=0.0.0.0"] diff --git a/Dockerfile.native b/Dockerfile.native index 0c84c7323..10bcc1f4b 100644 --- a/Dockerfile.native +++ b/Dockerfile.native @@ -25,6 +25,9 @@ VOLUME /app/data EXPOSE 4566 +HEALTHCHECK --interval=5s --timeout=3s --retries=5 \ + CMD curl -f http://localhost:4566/_floci/health || exit 1 + ARG VERSION=latest ENV FLOCI_VERSION=${VERSION} diff --git a/Dockerfile.native-package b/Dockerfile.native-package index 10e608125..6f542cc7b 100644 --- a/Dockerfile.native-package +++ b/Dockerfile.native-package @@ -18,6 +18,9 @@ COPY --chown=1001:root target/*-runner /app/application EXPOSE 4566 +HEALTHCHECK --interval=5s --timeout=3s --retries=5 \ + CMD curl -f http://localhost:4566/_floci/health || exit 1 + USER 1001 -CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] \ No newline at end of file +CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] From 5abb149e3bc48c94161a9c1d150b1b5f0a53d004 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 10:01:18 +0000 Subject: [PATCH 2/5] fix: install curl in all Dockerfiles for HEALTHCHECK The jvm-package (Alpine), native (quarkus-micro), and native-package (ubi9-minimal) base images do not include curl by default. Install it so the HEALTHCHECK instruction works correctly. Co-Authored-By: Matej Snuderl --- Dockerfile.jvm-package | 1 + Dockerfile.native | 4 +++- Dockerfile.native-package | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Dockerfile.jvm-package b/Dockerfile.jvm-package index 4df9b1554..657e24424 100644 --- a/Dockerfile.jvm-package +++ b/Dockerfile.jvm-package @@ -11,6 +11,7 @@ RUN mkdir -p /app/data \ && chown 1001:root /app \ && chmod "g+rwX" /app \ && chown 1001:root /app/data \ + && apk add --no-cache curl \ && if [ "$INSTALL_AWS_CLI" = "true" ]; then \ apk add --no-cache aws-cli; \ fi diff --git a/Dockerfile.native b/Dockerfile.native index 10bcc1f4b..58e8c0e16 100644 --- a/Dockerfile.native +++ b/Dockerfile.native @@ -18,7 +18,9 @@ FROM quay.io/quarkus/quarkus-micro-image:2.0 USER root WORKDIR /app -RUN mkdir -p /app/data \ +RUN microdnf install -y curl \ + && microdnf clean all \ + && mkdir -p /app/data \ && chown -R 1001:root /app \ && chmod -R g+rwX /app VOLUME /app/data diff --git a/Dockerfile.native-package b/Dockerfile.native-package index 6f542cc7b..3e369320a 100644 --- a/Dockerfile.native-package +++ b/Dockerfile.native-package @@ -7,7 +7,9 @@ ENV FLOCI_VERSION=${VERSION} WORKDIR /app -RUN mkdir -p /app/data \ +RUN microdnf install -y curl \ + && microdnf clean all \ + && mkdir -p /app/data \ && chown -R 1001:root /app \ && chmod -R g+rwX /app From 28e7c356769bf337320c7316b9ece12d3f2b3c8d Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 10:26:20 +0000 Subject: [PATCH 3/5] refactor: switch HEALTHCHECK from curl to wget Use wget (available by default in Alpine and UBI base images) instead of curl, eliminating the need to install additional packages. Co-Authored-By: Matej Snuderl --- Dockerfile | 4 +--- Dockerfile.jvm-package | 3 +-- Dockerfile.native | 6 ++---- Dockerfile.native-package | 6 ++---- 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 84adfb409..2082e259e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,12 +19,10 @@ COPY --from=build /build/target/quarkus-app/ quarkus-app/ RUN mkdir -p /app/data VOLUME /app/data -RUN apk add --no-cache curl - EXPOSE 4566 6379-6399 HEALTHCHECK --interval=5s --timeout=3s --retries=5 \ - CMD curl -f http://localhost:4566/_floci/health || exit 1 + CMD wget -q --spider http://localhost:4566/_floci/health || exit 1 ARG VERSION=latest ENV FLOCI_VERSION=${VERSION} diff --git a/Dockerfile.jvm-package b/Dockerfile.jvm-package index 657e24424..04ed8ac29 100644 --- a/Dockerfile.jvm-package +++ b/Dockerfile.jvm-package @@ -11,7 +11,6 @@ RUN mkdir -p /app/data \ && chown 1001:root /app \ && chmod "g+rwX" /app \ && chown 1001:root /app/data \ - && apk add --no-cache curl \ && if [ "$INSTALL_AWS_CLI" = "true" ]; then \ apk add --no-cache aws-cli; \ fi @@ -23,7 +22,7 @@ COPY --chown=1001:root target/quarkus-app quarkus-app/ EXPOSE 4566 6379-6399 HEALTHCHECK --interval=5s --timeout=3s --retries=5 \ - CMD curl -f http://localhost:4566/_floci/health || exit 1 + CMD wget -q --spider http://localhost:4566/_floci/health || exit 1 USER 1001 diff --git a/Dockerfile.native b/Dockerfile.native index 58e8c0e16..401047d7b 100644 --- a/Dockerfile.native +++ b/Dockerfile.native @@ -18,9 +18,7 @@ FROM quay.io/quarkus/quarkus-micro-image:2.0 USER root WORKDIR /app -RUN microdnf install -y curl \ - && microdnf clean all \ - && mkdir -p /app/data \ +RUN mkdir -p /app/data \ && chown -R 1001:root /app \ && chmod -R g+rwX /app VOLUME /app/data @@ -28,7 +26,7 @@ VOLUME /app/data EXPOSE 4566 HEALTHCHECK --interval=5s --timeout=3s --retries=5 \ - CMD curl -f http://localhost:4566/_floci/health || exit 1 + CMD wget -q --spider http://localhost:4566/_floci/health || exit 1 ARG VERSION=latest ENV FLOCI_VERSION=${VERSION} diff --git a/Dockerfile.native-package b/Dockerfile.native-package index 3e369320a..7475500d9 100644 --- a/Dockerfile.native-package +++ b/Dockerfile.native-package @@ -7,9 +7,7 @@ ENV FLOCI_VERSION=${VERSION} WORKDIR /app -RUN microdnf install -y curl \ - && microdnf clean all \ - && mkdir -p /app/data \ +RUN mkdir -p /app/data \ && chown -R 1001:root /app \ && chmod -R g+rwX /app @@ -21,7 +19,7 @@ COPY --chown=1001:root target/*-runner /app/application EXPOSE 4566 HEALTHCHECK --interval=5s --timeout=3s --retries=5 \ - CMD curl -f http://localhost:4566/_floci/health || exit 1 + CMD wget -q --spider http://localhost:4566/_floci/health || exit 1 USER 1001 From 8a5c6d2d298e75dabcd34a3879660cf218e65d7d Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 10:29:23 +0000 Subject: [PATCH 4/5] fix: install wget in UBI-based Dockerfiles for HEALTHCHECK The quarkus-micro-image and ubi9-minimal base images do not include wget by default. Install it via microdnf so the HEALTHCHECK works. Co-Authored-By: Matej Snuderl --- Dockerfile.native | 4 +++- Dockerfile.native-package | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Dockerfile.native b/Dockerfile.native index 401047d7b..6423e416e 100644 --- a/Dockerfile.native +++ b/Dockerfile.native @@ -18,7 +18,9 @@ FROM quay.io/quarkus/quarkus-micro-image:2.0 USER root WORKDIR /app -RUN mkdir -p /app/data \ +RUN microdnf install -y wget \ + && microdnf clean all \ + && mkdir -p /app/data \ && chown -R 1001:root /app \ && chmod -R g+rwX /app VOLUME /app/data diff --git a/Dockerfile.native-package b/Dockerfile.native-package index 7475500d9..af4289504 100644 --- a/Dockerfile.native-package +++ b/Dockerfile.native-package @@ -7,7 +7,9 @@ ENV FLOCI_VERSION=${VERSION} WORKDIR /app -RUN mkdir -p /app/data \ +RUN microdnf install -y wget \ + && microdnf clean all \ + && mkdir -p /app/data \ && chown -R 1001:root /app \ && chmod -R g+rwX /app From 08fbd812cdd04372593b56ed8bc385000e0352fb Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 10:32:36 +0000 Subject: [PATCH 5/5] fix: use available tools per base image for HEALTHCHECK - Alpine images (Dockerfile, Dockerfile.jvm-package): wget (BusyBox) - ubi9-minimal (Dockerfile.native-package): curl (pre-installed) - quarkus-micro-image (Dockerfile.native): bash /dev/tcp (no curl/wget) No new packages installed. Co-Authored-By: Matej Snuderl --- Dockerfile.native | 6 ++---- Dockerfile.native-package | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/Dockerfile.native b/Dockerfile.native index 6423e416e..e6d52820d 100644 --- a/Dockerfile.native +++ b/Dockerfile.native @@ -18,9 +18,7 @@ FROM quay.io/quarkus/quarkus-micro-image:2.0 USER root WORKDIR /app -RUN microdnf install -y wget \ - && microdnf clean all \ - && mkdir -p /app/data \ +RUN mkdir -p /app/data \ && chown -R 1001:root /app \ && chmod -R g+rwX /app VOLUME /app/data @@ -28,7 +26,7 @@ VOLUME /app/data EXPOSE 4566 HEALTHCHECK --interval=5s --timeout=3s --retries=5 \ - CMD wget -q --spider http://localhost:4566/_floci/health || exit 1 + CMD bash -c 'echo -e "GET /_floci/health HTTP/1.0\r\nHost: localhost\r\n\r\n" > /dev/tcp/localhost/4566' || exit 1 ARG VERSION=latest ENV FLOCI_VERSION=${VERSION} diff --git a/Dockerfile.native-package b/Dockerfile.native-package index af4289504..6f542cc7b 100644 --- a/Dockerfile.native-package +++ b/Dockerfile.native-package @@ -7,9 +7,7 @@ ENV FLOCI_VERSION=${VERSION} WORKDIR /app -RUN microdnf install -y wget \ - && microdnf clean all \ - && mkdir -p /app/data \ +RUN mkdir -p /app/data \ && chown -R 1001:root /app \ && chmod -R g+rwX /app @@ -21,7 +19,7 @@ COPY --chown=1001:root target/*-runner /app/application EXPOSE 4566 HEALTHCHECK --interval=5s --timeout=3s --retries=5 \ - CMD wget -q --spider http://localhost:4566/_floci/health || exit 1 + CMD curl -f http://localhost:4566/_floci/health || exit 1 USER 1001