61 lines
1.6 KiB
Bash
61 lines
1.6 KiB
Bash
|
#!/bin/bash
|
||
|
#
|
||
|
# 2023-07-29
|
||
|
# Config/DNS/run.sh
|
||
|
# Fix common issues when trying to run this container.
|
||
|
|
||
|
function stop-service {
|
||
|
service=""
|
||
|
if [[ -n $1 ]]; then
|
||
|
service=$1
|
||
|
else
|
||
|
echo "ERROR: A parameter was not provided for stop-service, aborting." >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
if [[ -n $2 ]]; then
|
||
|
echo "ERROR: A second parameter to stop-service is not expected, aborting." >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
systemctl disable --now $service &&
|
||
|
echo "$service stopped successfully!" ||
|
||
|
echo "* If $service was not found then there is no problem."
|
||
|
}
|
||
|
|
||
|
## Validations ##
|
||
|
|
||
|
# Ensure the necessary config files have been created.
|
||
|
if [[ ! -s ./config/hosts
|
||
|
|| ! -s ./config/resolv.conf
|
||
|
|| ! -s ./config/dnsmasq.conf
|
||
|
]]; then
|
||
|
echo "ERROR: Please ensure all 3 files have been created in the config folder." >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo -e "\n*** Turn off any local DNS programs ***"
|
||
|
# These programs use port 53 but this container needs to be able to listen on it.
|
||
|
stop-service systemd-resolved
|
||
|
stop-service dnsmasq
|
||
|
|
||
|
echo -e "\n*** Create a working DNS file ***"
|
||
|
# Allows the domains needed during the docker pull/build to be accessed.
|
||
|
if [[ ! -e /etc/resolv.conf.save ]]; then
|
||
|
# Save the existing file if a backup does not already exist.
|
||
|
mv /etc/resolv.conf /etc/resolv.conf.save
|
||
|
fi
|
||
|
echo "nameserver 1.1.1.1" > /etc/resolv.conf
|
||
|
|
||
|
echo -e "\n*** Start the docker container ***"
|
||
|
docker compose down
|
||
|
docker compose build
|
||
|
docker compose up -d
|
||
|
|
||
|
echo -e "\n*** Now use the local process for DNS ***\n/etc/resolv.conf:"
|
||
|
echo "nameserver 127.0.0.1" > /etc/resolv.conf
|
||
|
echo "nameserver 127.0.1.1" >> /etc/resolv.conf
|
||
|
cat /etc/resolv.conf
|
||
|
|
||
|
# Finish
|
||
|
echo " "
|
||
|
exit 0
|