mirror of
https://github.com/pi-hole/docker-pi-hole.git
synced 2024-06-24 08:26:41 +02:00
Merge pull request #114 from diginc/dev
fix up PIHOLE_INTERFACE default
This commit is contained in:
commit
dc54d7f4cd
|
@ -41,6 +41,12 @@ In addition to the required environment variable you saw above (`-e ServerIP="$I
|
|||
| VIRTUAL_HOST | Server_IP | What your web server 'virtual host' is, accessing admin through this Hostname/IP allows you to make changes to the whitelist / blacklists in addition to the default 'http://pi.hole/admin/' address |
|
||||
| IPv6 | True | Allows forced disabling of IPv6 for docker setups that can't support it (like unraid) |
|
||||
|
||||
*OPTIONAL Advanced* Environment Variables
|
||||
|
||||
| Env Variable | Default | Description |
|
||||
| INTERFACE | eth0 | The default works fine with our basic example docker run commands. If you're trying to use DHCP with `--net host` mode then you may have to customize this or DNSMASQ_LISTENING.
|
||||
| DNSMASQ_LISTENING | | If set to `local` or `all` this will override `INTERFACE`. `local` listens on all local subnets, `all` permits listening on internet origin subnets in addition to local.
|
||||
|
||||
## Tips and Tricks
|
||||
|
||||
* A good way to test things are working right is by loading this page: [http://pi.hole/admin/](http://pi.hole/admin/)
|
||||
|
|
|
@ -27,7 +27,23 @@ setup_dnsmasq_dns() {
|
|||
echo "Using $dnsType DNS servers: $DNS1 & $DNS2"
|
||||
[ -n "$DNS1" ] && change_setting "PIHOLE_DNS_1" "${DNS1}"
|
||||
[ -n "$DNS2" ] && change_setting "PIHOLE_DNS_2" "${DNS2}"
|
||||
ProcessDNSSettings
|
||||
}
|
||||
|
||||
setup_dnsmasq_interface() {
|
||||
local INTERFACE="${1:-eth0}"
|
||||
local interfaceType='default'
|
||||
if [ "$INTERFACE" != 'eth0' ] ; then
|
||||
interfaceType='custom'
|
||||
fi;
|
||||
echo "DNSMasq binding to $interfaceType interface: $INTERFACE"
|
||||
[ -n "$INTERFACE" ] && change_setting "PIHOLE_INTERFACE" "${INTERFACE}"
|
||||
}
|
||||
|
||||
setup_dnsmasq() {
|
||||
# Coordinates
|
||||
setup_dnsmasq_dns "$DNS1" "$DNS2"
|
||||
setup_dnsmasq_interface "$INTERFACE"
|
||||
ProcessDNSSettings
|
||||
}
|
||||
|
||||
setup_dnsmasq_hostnames() {
|
||||
|
|
4
start.sh
4
start.sh
|
@ -10,8 +10,8 @@ export HOSTNAME
|
|||
export WEBLOGDIR
|
||||
export DNS1
|
||||
export DNS2
|
||||
export INTERFACE
|
||||
export IPv6
|
||||
#export setupVars="${setupVars:-/etc/pihole/setupVars.conf}"
|
||||
|
||||
. /bash_functions.sh
|
||||
|
||||
|
@ -21,7 +21,7 @@ prepare_setup_vars
|
|||
change_setting "IPV4_ADDRESS" "$ServerIP"
|
||||
change_setting "IPV6_ADDRESS" "$ServerIPv6"
|
||||
setup_web_password "$WEBPASSWORD"
|
||||
setup_dnsmasq_dns "$DNS1" "$DNS2"
|
||||
setup_dnsmasq
|
||||
setup_php_env
|
||||
setup_dnsmasq_hostnames "$ServerIP" "$ServerIPv6" "$HOSTNAME"
|
||||
setup_ipv4_ipv6
|
||||
|
|
|
@ -32,13 +32,26 @@ def test_IPv6_not_True_removes_ipv6(Docker, tag, args, expected_ipv6, expected_s
|
|||
])
|
||||
def test_DNS_Envs_override_defaults(Docker, args, expected_stdout, dns1, dns2):
|
||||
''' When DNS environment vars are passed in, they override default dns servers '''
|
||||
function = Docker.run('. /bash_functions.sh ; eval `grep setup_dnsmasq_dns /start.sh`')
|
||||
function = Docker.run('. /bash_functions.sh ; eval `grep setup_dnsmasq /start.sh`')
|
||||
assert expected_stdout in function.stdout
|
||||
|
||||
docker_dns_servers = Docker.run('grep "^server=" /etc/dnsmasq.d/01-pihole.conf').stdout
|
||||
expected_servers = 'server={}\nserver={}\n'.format(dns1, dns2)
|
||||
assert expected_servers == docker_dns_servers
|
||||
|
||||
@pytest.mark.parametrize('args, expected_stdout, expected_config_line', [
|
||||
('-e ServerIP="1.2.3.4"', 'binding to default interface: eth0', 'interface=eth0' ),
|
||||
('-e ServerIP="1.2.3.4" -e INTERFACE="eth0"', 'binding to default interface: eth0', 'interface=eth0' ),
|
||||
('-e ServerIP="1.2.3.4" -e INTERFACE="br0"', 'binding to custom interface: br0', 'interface=br0'),
|
||||
])
|
||||
def test_DNS_interface_override_defaults(Docker, args, expected_stdout, expected_config_line):
|
||||
''' When INTERFACE environment var is passed in, overwrite dnsmasq interface '''
|
||||
function = Docker.run('. /bash_functions.sh ; eval `grep setup_dnsmasq /start.sh`')
|
||||
assert expected_stdout in function.stdout
|
||||
|
||||
docker_dns_interface = Docker.run('grep "^interface" /etc/dnsmasq.d/01-pihole.conf').stdout
|
||||
assert expected_config_line + '\n' == docker_dns_interface
|
||||
|
||||
expected_debian_lines = [
|
||||
'"VIRTUAL_HOST" => "192.168.100.2"',
|
||||
'"ServerIP" => "192.168.100.2"',
|
||||
|
|
Loading…
Reference in New Issue
Block a user