AdguardTeam / AdguardTeam/AdGuardHome
Folder Structure Restricts use of Volumes in Docker Compose
- Ngôn ngữ chính
- TypeScript
- Star
- 36.9k
- Fork
- 2.5k
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
### Prerequisites
- [X] I have checked the [Wiki](https://github.com/AdguardTeam/AdGuardHome/wiki) and [Discussions](https://github.com/AdguardTeam/AdGuardHome/discussions) and found no answer
- [X] I have searched other issues and found no duplicates
- [X] I want to request a feature or enhancement and not ask a question
### The problem
Unable to use volumes in a docker-compose.yml as it uses a single path to redirect generated data. Volumes are the preferred method suggested by Docker, and is needed in order to follow proper backup and migration procedures. AdGuard Home currently suggest/uses Bind Mounts.
> "Volumes are the preferred mechanism for persisting data generated by and used by Docker containers. While [bind mounts] are dependent on the directory structure and OS of the host machine, volumes are completely managed by Docker. Volumes have several advantages over bind mounts." -https://docs.docker.com/storage/volumes/
Currently, you would need to point the volume to `/opt/adguardhome' where generated data is stored in 2 folders alongside the application/entrypoint that needs to remain in the container. This causes the issue.
```
/opt/adguardhome/conf
/opt/adguardhome/work
/opt/adguardhome/AdGuardHome #Application/Entrypoint.
```
AdGuard Home Documention for Docker; uses Bind Mounts.
```
docker run --name adguardhome\
--restart unless-stopped\
-v /my/own/workdir:/opt/adguardhome/work\
-v /my/own/confdir:/opt/adguardhome/conf\
-p 53:53/tcp -p 53:53/udp\
-p 67:67/udp -p 68:68/udp\
-p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\
-p 853:853/tcp\
-p 784:784/udp -p 853:853/udp -p 8853:8853/udp\
-p 5443:5443/tcp -p 5443:5443/udp\
-d adguard/adguardhome
```
### Proposed solution
Move the 2 folders containing the generated data, into a single folder that can be referenced in a docker-compose.yml file providing a single path of `/opt/adguardhome/data' needed to redirect only the generated data to a volume.
```
/opt/adguardhome/data/conf
/opt/adguardhome/data/work
/opt/adguardhome/AdGuardHome #Application/Entrypoint
```
Example of a working docker-compose.yml file, with the change, using volumes.
```
version: "3"
services:
adguardhome:
container_name: adguard-home
image: adguard/adguardhome:latest
ports:
- "53:53/tcp"
- "53:53/udp"
- "80:80/tcp"
- "443:443/tcp"
- "3000:3000/tcp"
- "6060:6060/tcp"
restart: unless-stopped
volumes:
- data:/opt/adguardhome/data
volumes:
data:
```
### Alternatives considered and additional information
_No response_
Hướng dẫn đóng góp
Đánh giá
Issue này chưa được đánh giá.