hat3ph/docker-adguard-unbound

arm64 support?

Closed this issue · 11 comments

arm64 support?

As of now the adguard-unbound docker image only support amd64 arch.
I have submit a patch to allow cross platform to the author. If he allow the update then can test out the arm docker image later.

lolgast1987/adguard-unbound#5

Can you try use this docker image? It support arm64.
Update the docker-compose.yml file to use the new image.

image: dieucq/adguardhome-unbound

Hey dude,
I tried to docker compose up the image but I always got this error:

pi@adguardhomepi:~/docker-adguard-unbound $ docker compose up -d
[+] Running 0/1
⠼ Container adguard-unbound Starting 0.4s
Error response from daemon: driver failed programming external connectivity on endpoint adguard-unbound (9645f4613285f348ec271e17a0a838c234f0c3bd114b99d937557b1c0baef1d0): Error starting userland proxy: error while calling PortManager.AddPort(): cannot expose privileged port 53, you can add 'net.ipv4.ip_unprivileged_port_start=53' to /etc/sysctl.conf (currently 80), or set CAP_NET_BIND_SERVICE on rootlesskit binary, or choose a larger port number (>= 80): listen tcp4 0.0.0.0:53: bind: permission denied

but when I change
net.ipv4.ip_unprivileged_port_start=53
same error with another port show up :/

Hey dude, I tried to docker compose up the image but I always got this error:

pi@adguardhomepi:~/docker-adguard-unbound $ docker compose up -d [+] Running 0/1 ⠼ Container adguard-unbound Starting 0.4s Error response from daemon: driver failed programming external connectivity on endpoint adguard-unbound (9645f4613285f348ec271e17a0a838c234f0c3bd114b99d937557b1c0baef1d0): Error starting userland proxy: error while calling PortManager.AddPort(): cannot expose privileged port 53, you can add 'net.ipv4.ip_unprivileged_port_start=53' to /etc/sysctl.conf (currently 80), or set CAP_NET_BIND_SERVICE on rootlesskit binary, or choose a larger port number (>= 80): listen tcp4 0.0.0.0:53: bind: permission denied

but when I change net.ipv4.ip_unprivileged_port_start=53 same error with another port show up :/

Do your login have access to run docker without root access? Btw, pls do not hijack this thread. Open another thread for your own issue.

I made it work for my pi.
Just clone the dockerfile from https://github.com/lolgast1987/adguard-unbound/blob/master/Dockerfile
Then replace AdGuardHome_linux_amd64.tar.gz with AdGuardHome_linux_arm64.tar.gz (2 occurences) and build it. Also copy over the unbound.conf from here.

My docker compose, for reference:

  adguard-unbound:
    build: ./../pidata/adguard/dockerfile  #adjust accordingly to your dockerfile folder location, in which you place the updated Dockerfile
    container_name: adguard-unbound
    restart: unless-stopped
    hostname: adguard-unbound
    entrypoint:
      - /bin/sh
    command: ["/opt/entrypoint.sh"]
    environment:
      - TZ=Europe/Bucharest
    volumes:
      - /home/ll/shared/pidata/adguard/opt-adguard-work:/opt/adguardhome/work # adguard container work directory
      - /home/ll/shared/pidata/adguard/opt-adguard-conf:/opt/adguardhome/conf # adguard container conf directory
      - /home/ll/shared/pidata/adguard/unbound:/opt/unbound #map custom unbound config
      - /usr/share/dns:/usr/share/dns # map DNSSEC key and root hints from dns-root-data package
    ports:
      - 53:53/tcp # AdGuard Home DNS connection
      - 53:53/udp # AdGuard Home DNS connection
      - 3000:3000/tcp # AdGuard Home install web panel. Can disable after installation is completed.
      - 8087:80/tcp # AdGuard Home web panel HTTP
      #- 443:443/tcp # AdGuard Home web panel HTTPS
      #- 784:784/udp # AdGuard Home DNS-over-QUIC service
      #- 853:853/tcp # AdGuard Home DNS-over-TLS/QUIC service
      #- 67:67/udp # DHCP server
      #- 68:68/udp # DHCP server
      #- 5035:5035/tcp # Uncomment to enable unbound access on local server
      #- 5035:5035/udp # Uncomment to enable unbound access on local server
    networks:
      - caddynet  

Enjoy.
One question, since Im new to Adguard, coming from pihole, do we bind "All interfaces" in the setup? Or only eth0? Or l0?
And the Adguard DNS should be 127.0.0.1:5053 or 0.0.0.0:5053?

Cheers

I made it work for my pi. Just clone the dockerfile from https://github.com/lolgast1987/adguard-unbound/blob/master/Dockerfile Then replace AdGuardHome_linux_amd64.tar.gz with AdGuardHome_linux_arm64.tar.gz (2 occurences) and build it. Also copy over the unbound.conf from here.

My docker compose, for reference:

  adguard-unbound:
    build: ./../pidata/adguard/dockerfile  #adjust accordingly to your dockerfile folder location, in which you place the updated Dockerfile
    container_name: adguard-unbound
    restart: unless-stopped
    hostname: adguard-unbound
    entrypoint:
      - /bin/sh
    command: ["/opt/entrypoint.sh"]
    environment:
      - TZ=Europe/Bucharest
    volumes:
      - /home/ll/shared/pidata/adguard/opt-adguard-work:/opt/adguardhome/work # adguard container work directory
      - /home/ll/shared/pidata/adguard/opt-adguard-conf:/opt/adguardhome/conf # adguard container conf directory
      - /home/ll/shared/pidata/adguard/unbound:/opt/unbound #map custom unbound config
      - /usr/share/dns:/usr/share/dns # map DNSSEC key and root hints from dns-root-data package
    ports:
      - 53:53/tcp # AdGuard Home DNS connection
      - 53:53/udp # AdGuard Home DNS connection
      - 3000:3000/tcp # AdGuard Home install web panel. Can disable after installation is completed.
      - 8087:80/tcp # AdGuard Home web panel HTTP
      #- 443:443/tcp # AdGuard Home web panel HTTPS
      #- 784:784/udp # AdGuard Home DNS-over-QUIC service
      #- 853:853/tcp # AdGuard Home DNS-over-TLS/QUIC service
      #- 67:67/udp # DHCP server
      #- 68:68/udp # DHCP server
      #- 5035:5035/tcp # Uncomment to enable unbound access on local server
      #- 5035:5035/udp # Uncomment to enable unbound access on local server
    networks:
      - caddynet  

Enjoy. One question, since Im new to Adguard, coming from pihole, do we bind "All interfaces" in the setup? Or only eth0? Or l0? And the Adguard DNS should be 127.0.0.1:5053 or 0.0.0.0:5053?

Cheers

Check out my dockerfile (https://github.com/hat3ph/adguard-unbound/blob/master/Dockerfile), it should allow to build multiple arch of docker image.

For the AdGuard listen interface setup, I would recommend to use All interfaces for out-of-the-box experience. But in theory, choose the default eth0 should work for your local network. Choose lo interface only for local loopback connection.
https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration
https://github.com/AdguardTeam/AdGuardHome/wiki/FAQ#webaddr

Thanks, I will probably use your dockerfile.
Personally, I used FROM arm64v8/alpine to get it correctly for my pi architecture.
Also, is there a reason you choose to stick to older version? Latest stable is unbound=1.17.1-r0

As for the interface, yes, I choose eth0 only, I used to do the same for pihole.

@C8opmBM, I have update the dockerfile using latest alpine and unbound. Pls try it out.

Thanks for the update @hat3ph, but I've eventually decided to run a normal combo of the official adguard/adguardhome:latest image and the maintained klutchell/unbound:latest due to ease of use and access to automatic updates.
Thanks again and have a great weekend.

Thanks for the update @hat3ph, but I've eventually decided to run a normal combo of the official adguard/adguardhome:latest image and the maintained klutchell/unbound:latest due to ease of use and access to automatic updates. Thanks again and have a great weekend.

No problem. Have fun.

hat3ph commented

For those whose is interested, I have build multi-arch docker image in ghcr.io. Go check it out https://github.com/hat3ph/adguard-unbound