Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add some information about building the docker image locally #1080

Merged
merged 5 commits into from
Sep 25, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions docs/docker/build-image.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
In case you wish to customise the image, or perhaps check out a branch after being asked by a developer to do so, you can use the convienient `build.sh` script located in the root of the [docker-pi-hole repository](https://github.com/pi-hole/docker-pi-hole)

#### Usage:

```
./build.sh [-l] [-f <ftl_branch>] [-c <core_branch>] [-w <web_branch>] [-t <tag>] [use_cache]
```

#### Options:

```
`-f <branch>` / `--ftlbranch <branch>`: Specify FTL branch (cannot be used in conjunction with `-l`)
`-c <branch>` / `--corebranch <branch>`: Specify Core branch
`-w <branch>` / `--webbranch <branch>`: Specify Web branch
`-t <tag>` / `--tag <tag>`: Specify Docker image tag (default: `pihole`)
`-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, and an image will be created based on the current branch of the repository, and all `master` component branches.

```
docker buildx build src/. --tag pihole --no-cache
```

Once the command has run, a local image will have been created named `pihole`, you can reference this as a drop-in replacement for `pihole/pihole:latest` in your compose file or your run command:

```yml
services:
pihole:
container_name: pihole
image: pihole
...
```

```
docker run [options] pihole
```

Then start your container as normal.

### `pihole checkout` alternative

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.

The preferred method is to use the script documented above

#### Examples

- You have been asked by a developer to checkout the FTL branch `new/Sensors`. To do so

```
git clone https://github.com/pi-hole/docker-pi-hole
cd docker-pi-hole
git checkout development-v6 # NOTE: This step is only needed until V6 is released
./build.sh -f new/Sensors
```
PromoFaux marked this conversation as resolved.
Show resolved Hide resolved

- There is new docker-specific work being carried out on the branch `fix/logRotate` that you wish to test

```
git clone https://github.com/pi-hole/docker-pi-hole
cd docker-pi-hole
git checkout fix/logRotate
./build.sh
```
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ nav:
- "Pi-hole extensions": regex/pi-hole.md
- "Approximate matching": regex/approximate.md
- 'Docker':
- 'Building': docker/build-image.md
- 'DHCP': docker/DHCP.md
- 'Contributing':
- 'Contributing on GitHub': guides/github/contributing.md
Expand Down