diff --git a/Dockerfile b/Dockerfile index ee0c11e..acc7a62 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,6 +19,11 @@ WORKDIR /app COPY --from=builder /app/zurg . # RUN apk add --no-cache upx # RUN upx --brute zurg +# Create a health check script that extracts the port from the config file +RUN echo $'#!/bin/sh\n\ +port=$(yaml read /app/config.yml port)\n\ +nc -z localhost $port || exit 1' > /app/healthcheck.sh && \ + chmod +x /app/healthcheck.sh # Final stage FROM alpine:3 @@ -26,12 +31,15 @@ WORKDIR /app # Copy the obfuscated binary from the obfuscator stage COPY --from=obfuscator /app/zurg . +COPY --from=obfuscator /app/healthcheck.sh . # Copy the rest of the application files, including the config.yml COPY config.example.yml /app/config.yml # Install runtime dependencies and configure FUSE -RUN apk add --no-cache fuse3 curl \ +RUN apk add --no-cache fuse3 netcat-openbsd yaml-cpp curl \ && echo 'user_allow_other' >> /etc/fuse.conf +HEALTHCHECK --interval=60s --timeout=60s --start-period=10s --retries=10 CMD /app/healthcheck.sh + ENTRYPOINT ["./zurg"]