Building
In case you wish to customize the image, or perhaps check out a branch after being asked by a developer to do so, you can use the convenient build.sh
script located in the root of the docker-pi-hole repository
Checking out the repository¶
In order to build the image locally, you will first need a copy of the repository on your computer. The following commands will clone the repository from Github and then put you into the directory
git clone https://github.com/pi-hole/docker-pi-hole
cd docker-pi-hole
git checkout development #NOTE: This step is only needed until V6 is released
All other commands following assume you have at least run the above steps.
Build.sh¶
Usage: ./build.sh [-l] [-f <ftl_branch>] [-c <core_branch>] [-w <web_branch>] [-t <tag>] [use_cache]
Options:
-f, --ftlbranch <branch> Specify FTL branch (cannot be used in conjunction with -l)
-c, --corebranch <branch> Specify Core branch
-w, --webbranch <branch> Specify Web branch
-p, --paddbranch <branch> Specify PADD branch
-t, --tag <tag> Specify Docker image tag (default: pihole:local)
-l, --local Use locally built FTL binary (requires src/pihole-FTL file)
use_cache Enable caching (by default --no-cache is used)
If no options are specified, the following command will be executed:
docker buildx build src/. --tag pihole:local --load --no-cache
Example uses of the script¶
Contributing to the development of docker-pi-hole
¶
When contributing, it's always a good idea to test your changes before submitting a pull request. Simply running ./build.sh
will allow you to do so.
There is also ./build-and-test.sh
, which can be used to verify the tests that are run on Github pass with your changes.
git checkout -b myNewFeatureBranch
#make some changes
./build.sh
As an alternative to pihole checkout
¶
Occasionally you may need to try an alternative branch of one of the components (core
,web
,ftl
). On bare metal you would run, for example, pihole checkout core branchName
, however in the Docker image we have disabled this command as it can cause unpredictable results.
Examples¶
- You have been asked by a developer to checkout the FTL branch
new/Sensors
. To do so
./build.sh -f new/Sensors
- There is new docker-specific work being carried out on the branch
fix/logRotate
that you wish to test
git checkout fix/logRotate
./build.sh
Using the built image¶
Unless otherwise named via the -t
command, the script will build an image locally and tag it as pihole:local
. You can reference this as a drop-in replacement for pihole/pihole:latest
in your compose file or your run command:
services:
pihole:
container_name: pihole
image: pihole:local
...
docker run [options] pihole:local