43 lines
1022 B
Docker
43 lines
1022 B
Docker
FROM alpine:3.20
|
|
|
|
RUN apk add --no-cache \
|
|
bash \
|
|
curl \
|
|
jq \
|
|
bind-tools \
|
|
iputils \
|
|
socat \
|
|
libcap \
|
|
&& setcap cap_net_raw+ep /usr/bin/ping 2>/dev/null || true
|
|
|
|
RUN mkdir -p /var/www/cfb \
|
|
&& chown -R nobody:nogroup /var/www/cfb
|
|
|
|
COPY --chmod=755 entrypoint.sh status-handler.sh /opt/cfb/
|
|
RUN chown -R nobody:nogroup /opt/cfb
|
|
|
|
USER nobody:nogroup
|
|
WORKDIR /opt/cfb
|
|
|
|
ENV CHECK_INTERVAL_SEC=30 \
|
|
CHECK_MODE=ping \
|
|
PING_COUNT=2 \
|
|
PING_TIMEOUT_SEC=2 \
|
|
CURL_MAX_TIME_SEC=5 \
|
|
CURL_CONNECT_TIMEOUT_SEC=3 \
|
|
CURL_URL_TEMPLATE='http://%s/' \
|
|
CURL_OK_MIN=200 \
|
|
CURL_OK_MAX=399 \
|
|
DEFAULT_TTL=300 \
|
|
DEFAULT_PROXIED=false \
|
|
ENABLE_STATUS_HTTP=0 \
|
|
STATUS_HTTP_PORT=8080 \
|
|
STATUS_HTTP_ALLOW_IPS=""
|
|
|
|
EXPOSE 8080
|
|
|
|
HEALTHCHECK --interval=45s --timeout=5s --start-period=20s --retries=3 \
|
|
CMD test -f /tmp/cfb.liveness && test "$(($(date +%s) - $(stat -c %Y /tmp/cfb.liveness)))" -lt 180 || exit 1
|
|
|
|
ENTRYPOINT ["/bin/bash", "/opt/cfb/entrypoint.sh"]
|