Skip to content

Instantly share code, notes, and snippets.

@rodrigo-x
Created February 17, 2024 16:25
Show Gist options
  • Save rodrigo-x/64e3ff3729b3b4db86fa9b418db47add to your computer and use it in GitHub Desktop.
Save rodrigo-x/64e3ff3729b3b4db86fa9b418db47add to your computer and use it in GitHub Desktop.
pi hole docker_run
#!/usr/bin/env bash
function validar_variaveis() {
if [[ -z "$PIHOLE_BASE" ]]; then
echo "Erro: Variável PIHOLE_BASE não definida."
exit 1
fi
}
function criar_diretorio() {
if ! mkdir -p "$PIHOLE_BASE"; then
echo "Erro ao criar o diretório: $PIHOLE_BASE" >&2
exit 1
fi
}
function iniciar_container() {
docker run -d \
--name $PIHOLE_CONTAINER_NAME \
-p 53:53/tcp -p 53:53/udp \
-p 80:80 \
-e TZ="America/Bahia" \
-v "${PIHOLE_BASE}/etc-pihole:/etc/pihole" \
-v "${PIHOLE_BASE}/etc-dnsmasq.d:/etc/dnsmasq.d" \
--dns=127.0.0.1 --dns=1.1.1.1 \
--restart=unless-stopped \
--hostname pi.hole \
-e VIRTUAL_HOST="pi.hole" \
-e PROXY_LOCATION="pi.hole" \
-e FTLCONF_LOCAL_IPV4="127.0.0.1" \
$PIHOLE_IMAGE
}
function aguardar_inicializacao() {
printf 'Iniciando o contêiner Pi-hole '
for i in $(seq 1 $TIMEOUT_SECONDS); do
if [ "$(docker inspect -f "{{.State.Health.Status}}" $PIHOLE_CONTAINER_NAME)" == "healthy" ]; then
printf ' OK\n'
echo -e "$(docker logs $PIHOLE_CONTAINER_NAME 2> /dev/null | grep 'password:') Acesse o painel do Pi-hole: http://${IP}/admin/"
exit 0
else
sleep 3
printf '.'
fi
if [ $i -eq $TIMEOUT_SECONDS ]; then
echo -e "\nTempo esgotado ao aguardar o início do Pi-hole. Consulte os logs do contêiner para obter mais informações (\`docker logs $PIHOLE_CONTAINER_NAME\`)"
exit 1
fi
done
}
validar_variaveis
criar_diretorio
iniciar_container
aguardar_inicializacao
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment