From 387d52c2fc2bfc1815d16e06ba0570b1e438f684 Mon Sep 17 00:00:00 2001 From: GAS85 Date: Tue, 7 May 2024 20:52:22 +0200 Subject: [PATCH] Add Docker Healthcheck to both containers. Solution for #890 Based on https://github.com/GoogleContainerTools/distroless/issues/183#issuecomment-823181507 --- Dockerfile | 5 +++++ Dockerfile.rootless | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/Dockerfile b/Dockerfile index f7525f5..87c1dd5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -43,6 +43,11 @@ RUN chmod +x /app/api LABEL Name=homebox Version=0.0.1 LABEL org.opencontainers.image.source="https://github.com/hay-kot/homebox" EXPOSE 7745 +HEALTHCHECK --interval=30s \ + --timeout=5s \ + --start-period=5s \ + --retries=3 \ + CMD [ "/usr/bin/wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:7745" ] WORKDIR /app VOLUME [ "/data" ] diff --git a/Dockerfile.rootless b/Dockerfile.rootless index e1c98aa..20ab1e7 100644 --- a/Dockerfile.rootless +++ b/Dockerfile.rootless @@ -13,6 +13,7 @@ FROM golang:alpine AS builder ARG BUILD_TIME ARG COMMIT ARG VERSION +ARG BUSYBOX_VERSION=1.31.0-i686-uclibc RUN apk update && \ apk upgrade && \ apk add --update git build-base gcc g++ @@ -30,6 +31,14 @@ RUN CGO_ENABLED=0 GOOS=linux go build \ # create a directory so that we can copy it in the next stage mkdir /data +# Downloading Wget +ADD https://busybox.net/downloads/binaries/$BUSYBOX_VERSION/busybox_WGET /wget +RUN chmod a+x /wget + +FROM gcr.io/distroless/java + +COPY --from=builder /wget /usr/bin/wget + # Production Stage FROM gcr.io/distroless/static @@ -41,10 +50,16 @@ ENV HBOX_STORAGE_SQLITE_URL=/data/homebox.db?_fk=1 # change the ownership to the low-privileged user COPY --from=builder --chown=nonroot /go/bin/api /app COPY --from=builder --chown=nonroot /data /data +COPY --from=builder --chown=nonroot /wget /usr/bin/wget LABEL Name=homebox Version=0.0.1 LABEL org.opencontainers.image.source="https://github.com/hay-kot/homebox" EXPOSE 7745 +HEALTHCHECK --interval=30s \ + --timeout=5s \ + --start-period=5s \ + --retries=3 \ + CMD [ "/usr/bin/wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:7745" ] VOLUME [ "/data" ] # Drop root and run as low-privileged user