ARG CONTAINER="3.18" FROM alpine:${CONTAINER} # https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope ARG TARGETPLATFORM ARG WEB_BRANCH="development-v6" ARG CORE_BRANCH="development-v6" ARG FTL_BRANCH="development-v6" ARG PIHOLE_DOCKER_TAG="unknown" ARG PADD_BRANCH="PADD_FTLv6" ENV DNSMASQ_USER=pihole ENV FTL_CMD=no-daemon RUN apk add --no-cache \ bash \ bind-tools \ binutils \ coreutils \ curl \ git \ iproute2-ss \ jq \ libcap \ ncurses \ nmap-ncat \ procps-ng \ psmisc \ shadow \ sudo \ tini \ tzdata \ unzip \ wget ADD https://ftl.pi-hole.net/macvendor.db /macvendor.db COPY crontab.txt /crontab.txt # Add PADD to the container, too. ADD --chmod=0755 https://raw.githubusercontent.com/pi-hole/PADD/${PADD_BRANCH}/padd.sh /usr/local/bin/padd # download a the main repos from github RUN git clone --depth 1 --single-branch --branch ${WEB_BRANCH} https://github.com/pi-hole/web.git /var/www/html/admin && \ git clone --depth 1 --single-branch --branch ${CORE_BRANCH} https://github.com/pi-hole/pi-hole.git /etc/.pihole ;\ # Download the latest version of pihole-FTL for alpine: if [ "$TARGETPLATFORM" = "linux/amd64" ]; then FTLARCH=amd64; \ elif [ "$TARGETPLATFORM" = "linux/386" ]; then FTLARCH=386; \ elif [ "$TARGETPLATFORM" = "linux/arm/v6" ]; then FTLARCH=armv6; \ elif [ "$TARGETPLATFORM" = "linux/arm/v7" ]; then FTLARCH=armv7; \ elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then FTLARCH=arm64; \ elif [ "$TARGETPLATFORM" = "linux/riscv64" ]; then FTLARCH=riscv64; \ else FTLARCH=amd64; fi \ && echo "Arch: ${TARGETPLATFORM}, FTLARCH: ${FTLARCH}" \ && curl -sSL "https://ftl.pi-hole.net/${FTL_BRANCH}/pihole-FTL-${FTLARCH}" -o /usr/bin/pihole-FTL \ && chmod +x /usr/bin/pihole-FTL \ && readelf -h /usr/bin/pihole-FTL || cat /usr/bin/pihole-FTL RUN cd /etc/.pihole && \ install -Dm755 -d /opt/pihole && \ install -Dm755 -t /opt/pihole gravity.sh && \ install -Dm755 -t /opt/pihole ./advanced/Scripts/*.sh && \ install -Dm755 -t /opt/pihole ./advanced/Scripts/COL_TABLE && \ install -Dm755 -t /usr/local/bin pihole && \ install -Dm644 ./advanced/bash-completion/pihole /etc/bash_completion.d/pihole && \ install -T -m 0755 ./advanced/Templates/pihole-FTL-prestart.sh /opt/pihole/pihole-FTL-prestart.sh && \ install -T -m 0755 ./advanced/Templates/pihole-FTL-poststop.sh /opt/pihole/pihole-FTL-poststop.sh && \ addgroup -S pihole && adduser -S pihole -G pihole && \ echo "${PIHOLE_DOCKER_TAG}" > /pihole.docker.tag COPY --chmod=0755 bash_functions.sh /usr/bin/bash_functions.sh COPY --chmod=0755 start.sh /usr/bin/start.sh COPY --chmod=0755 service /usr/local/bin/service HEALTHCHECK CMD dig +short +norecurse +retry=0 @127.0.0.1 pi.hole || exit 1 ENTRYPOINT ["/sbin/tini", "--", "start.sh"]