mirror of
https://github.com/pi-hole/docker-pi-hole.git
synced 2024-06-24 08:26:41 +02:00
By default, dig will retry 2 times (for a total of 3 attempts) to get a response back. Each attempt defaults to 5 seconds. Before this change, a single docker healtcheck failure would really mean three failures and would take a total of 15 seconds before failing. By default, docker healthchecks will retry 3 times before considering a service unhealhy (with a 30 second interval). Combined with dig retries, this means it would take a total of 9 failed DNS responses before it considers the pihole to be unhealthy. Combining the retry between dig and docker, dig considers it a success if even 1/3 responses are recieved - and docker considers it a success if only 1/3 of those successes are successful. I'm not great at math - and order does make a difference - but I think that means as long as 1/9th of DNS queries are being answered - then docker thinks its healthy. Anyways, long story sort, dig doesn't need to have its own retry logic since docker already has a configuarable retry. I also disable recurse since the goal is to test this specific instance. Also removed duplicate import statement. Signed-off-by: Daniel <daniel@developerdan.com>
50 lines
1.3 KiB
Docker
50 lines
1.3 KiB
Docker
FROM {{ pihole.base }}
|
|
|
|
ENV ARCH {{ pihole.arch }}
|
|
ENV S6OVERLAY_RELEASE https://github.com/just-containers/s6-overlay/releases/download/{{ pihole.s6_version }}/s6-overlay-{{ pihole.s6arch }}.tar.gz
|
|
|
|
COPY install.sh /usr/local/bin/install.sh
|
|
COPY VERSION /etc/docker-pi-hole-version
|
|
ENV PIHOLE_INSTALL /root/ph_install.sh
|
|
|
|
RUN bash -ex install.sh 2>&1 && \
|
|
rm -rf /var/cache/apt/archives /var/lib/apt/lists/*
|
|
|
|
ENTRYPOINT [ "/s6-init" ]
|
|
|
|
ADD s6/debian-root /
|
|
COPY s6/service /usr/local/bin/service
|
|
|
|
# php config start passes special ENVs into
|
|
ENV PHP_ENV_CONFIG '{{ pihole.php_env_config }}'
|
|
ENV PHP_ERROR_LOG '{{ pihole.php_error_log }}'
|
|
COPY ./start.sh /
|
|
COPY ./bash_functions.sh /
|
|
|
|
# IPv6 disable flag for networks/devices that do not support it
|
|
ENV IPv6 True
|
|
|
|
EXPOSE 53 53/udp
|
|
EXPOSE 67/udp
|
|
EXPOSE 80
|
|
EXPOSE 443
|
|
|
|
ENV S6_LOGGING 0
|
|
ENV S6_KEEP_ENV 1
|
|
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS 2
|
|
|
|
ENV ServerIP 0.0.0.0
|
|
ENV FTL_CMD no-daemon
|
|
ENV DNSMASQ_USER root
|
|
|
|
ENV VERSION {{ pihole.version }}
|
|
ENV PATH /opt/pihole:${PATH}
|
|
|
|
LABEL image="{{ pihole.name }}:{{ pihole.version }}_{{ pihole.arch }}"
|
|
LABEL maintainer="{{ pihole.maintainer }}"
|
|
LABEL url="https://www.github.com/pi-hole/docker-pi-hole"
|
|
|
|
HEALTHCHECK CMD dig +norecurse +retry=0 @127.0.0.1 pi.hole || exit 1
|
|
|
|
SHELL ["/bin/bash", "-c"]
|