mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-05-26 20:49:55 +00:00
docs(docker): Rewrite Docker DNS workaround with custom resolv.conf
Instead of /etc/resolv.conf on host. This works around the systemd-resolved footgunning issue and provide an inline way to configure resolvers, separate from that of the host system.
This commit is contained in:
+18
-12
@@ -112,19 +112,25 @@ See the [reference configuration](../reference/config) page for all config optio
|
|||||||
|
|
||||||
These examples include reverse proxy configurations for Matrix federation, which will route your Matrix domain (and optionally .well-known paths) to Continuwuity.
|
These examples include reverse proxy configurations for Matrix federation, which will route your Matrix domain (and optionally .well-known paths) to Continuwuity.
|
||||||
|
|
||||||
:::note DNS Performance
|
:::note Docker DNS Performance
|
||||||
Docker's default DNS resolver can cause performance issues with Matrix
|
Docker's default DNS resolver are known to cause issues for Matrix federation, such as very slow federation or DNS timeout. As a workaround, we will mount a custom `/etc/resolv.conf` config file into the Continuwuity service, in order to bypass Docker and use a more performant resolver.
|
||||||
federation. If you experience slow federation or DNS timeouts, you may need to
|
|
||||||
use your host's DNS resolver instead. Add this volume mount to the
|
|
||||||
`continuwuity` service:
|
|
||||||
|
|
||||||
```yaml
|
```yaml title='docker-compose.yml'
|
||||||
volumes:
|
services:
|
||||||
- /etc/resolv.conf:/etc/resolv.conf:ro
|
homeserver:
|
||||||
|
# ...
|
||||||
|
configs:
|
||||||
|
- source: continuwuity-resolv.conf
|
||||||
|
target: /etc/resolv.conf
|
||||||
|
|
||||||
|
configs:
|
||||||
|
continuwuity-resolv.conf:
|
||||||
|
content: |
|
||||||
|
nameserver 1.0.0.1
|
||||||
|
nameserver 1.1.1.1
|
||||||
```
|
```
|
||||||
|
|
||||||
See [Troubleshooting - DNS Issues](../troubleshooting.mdx#potential-dns-issues-when-using-docker)
|
See [**Troubleshooting - DNS Issues**](../troubleshooting.mdx#potential-dns-issues-when-using-docker) for more details and alternative solutions.
|
||||||
for more details and alternative solutions.
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
#### Caddy (using Caddyfile)
|
#### Caddy (using Caddyfile)
|
||||||
@@ -197,9 +203,9 @@ You will then need to point your reverse proxy towards Continuwuity at `127.0.0.
|
|||||||
|
|
||||||
### Starting Your Server
|
### Starting Your Server
|
||||||
|
|
||||||
1. Choose your compose file and rename it to `docker-compose.yml`
|
1. Choose your compose file from the above, and rename it to `docker-compose.yml`. Edit values as you see fit.
|
||||||
2. If using the override file, rename it to `docker-compose.override.yml` and
|
2. If using the override file, rename it to `docker-compose.override.yml` and
|
||||||
edit your values
|
edit your values.
|
||||||
3. Start the server:
|
3. Start the server:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -39,6 +39,9 @@ services:
|
|||||||
nofile:
|
nofile:
|
||||||
soft: 1048567
|
soft: 1048567
|
||||||
hard: 1048567
|
hard: 1048567
|
||||||
|
configs: # using custom resolver instead of Docker's
|
||||||
|
- source: continuwuity-resolv.conf
|
||||||
|
target: /etc/resolv.conf
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
db:
|
db:
|
||||||
@@ -48,3 +51,9 @@ networks:
|
|||||||
# name, don't forget to change it here and in the docker-compose.override.yml
|
# name, don't forget to change it here and in the docker-compose.override.yml
|
||||||
proxy:
|
proxy:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
|
configs:
|
||||||
|
continuwuity-resolv.conf:
|
||||||
|
content: |
|
||||||
|
nameserver 1.0.0.1
|
||||||
|
nameserver 1.1.1.1
|
||||||
@@ -24,7 +24,6 @@ services:
|
|||||||
command: /sbin/conduwuit
|
command: /sbin/conduwuit
|
||||||
volumes:
|
volumes:
|
||||||
- db:/var/lib/continuwuity
|
- db:/var/lib/continuwuity
|
||||||
- /etc/resolv.conf:/etc/resolv.conf:ro # Use the host's DNS resolver rather than Docker's.
|
|
||||||
#- ./continuwuity.toml:/etc/continuwuity.toml
|
#- ./continuwuity.toml:/etc/continuwuity.toml
|
||||||
environment:
|
environment:
|
||||||
CONTINUWUITY_SERVER_NAME: example.com # EDIT THIS
|
CONTINUWUITY_SERVER_NAME: example.com # EDIT THIS
|
||||||
@@ -41,9 +40,18 @@ services:
|
|||||||
labels:
|
labels:
|
||||||
caddy: matrix.example.com
|
caddy: matrix.example.com
|
||||||
caddy.reverse_proxy: "{{upstreams 8008}}"
|
caddy.reverse_proxy: "{{upstreams 8008}}"
|
||||||
|
configs: # using custom resolver instead of Docker's
|
||||||
|
- source: continuwuity-resolv.conf
|
||||||
|
target: /etc/resolv.conf
|
||||||
volumes:
|
volumes:
|
||||||
db:
|
db:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
caddy:
|
caddy:
|
||||||
|
|
||||||
|
configs:
|
||||||
|
continuwuity-resolv.conf:
|
||||||
|
content: |
|
||||||
|
nameserver 1.0.0.1
|
||||||
|
nameserver 1.1.1.1
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
networks:
|
|
||||||
caddy:
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
db:
|
|
||||||
|
|
||||||
configs:
|
|
||||||
dynamic.yml:
|
|
||||||
content: |
|
|
||||||
https://example.com, https://example.com:8448 {
|
|
||||||
reverse_proxy http://homeserver:8008
|
|
||||||
}
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
caddy:
|
caddy:
|
||||||
image: docker.io/caddy:latest
|
image: docker.io/caddy:latest
|
||||||
@@ -33,7 +20,6 @@ services:
|
|||||||
command: /sbin/conduwuit
|
command: /sbin/conduwuit
|
||||||
volumes:
|
volumes:
|
||||||
- db:/var/lib/continuwuity
|
- db:/var/lib/continuwuity
|
||||||
- /etc/resolv.conf:/etc/resolv.conf:ro # Use the host's DNS resolver rather than Docker's.
|
|
||||||
#- ./continuwuity.toml:/etc/continuwuity.toml
|
#- ./continuwuity.toml:/etc/continuwuity.toml
|
||||||
environment:
|
environment:
|
||||||
CONTINUWUITY_SERVER_NAME: example.com
|
CONTINUWUITY_SERVER_NAME: example.com
|
||||||
@@ -42,4 +28,25 @@ services:
|
|||||||
CONTINUWUITY_PORT: 8008
|
CONTINUWUITY_PORT: 8008
|
||||||
#CONTINUWUITY_CONFIG: '/etc/continuwuity.toml' # Uncomment if you mapped config toml above
|
#CONTINUWUITY_CONFIG: '/etc/continuwuity.toml' # Uncomment if you mapped config toml above
|
||||||
networks:
|
networks:
|
||||||
- caddy
|
- caddy
|
||||||
|
configs: # using custom resolvers instead of Docker's
|
||||||
|
- source: continuwuity-resolv.conf
|
||||||
|
target: /etc/resolv.conf
|
||||||
|
|
||||||
|
networks:
|
||||||
|
caddy:
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
db:
|
||||||
|
|
||||||
|
configs:
|
||||||
|
dynamic.yml:
|
||||||
|
content: |
|
||||||
|
https://example.com, https://example.com:8448 {
|
||||||
|
reverse_proxy http://homeserver:8008
|
||||||
|
}
|
||||||
|
|
||||||
|
continuwuity-resolv.conf:
|
||||||
|
content: |
|
||||||
|
nameserver 1.0.0.1
|
||||||
|
nameserver 1.1.1.1
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ services:
|
|||||||
command: /sbin/conduwuit
|
command: /sbin/conduwuit
|
||||||
volumes:
|
volumes:
|
||||||
- db:/var/lib/continuwuity
|
- db:/var/lib/continuwuity
|
||||||
- /etc/resolv.conf:/etc/resolv.conf:ro # Use the host's DNS resolver rather than Docker's.
|
|
||||||
#- ./continuwuity.toml:/etc/continuwuity.toml
|
#- ./continuwuity.toml:/etc/continuwuity.toml
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
@@ -37,6 +36,9 @@ services:
|
|||||||
nofile:
|
nofile:
|
||||||
soft: 1048567
|
soft: 1048567
|
||||||
hard: 1048567
|
hard: 1048567
|
||||||
|
configs: # using custom resolver instead of Docker's
|
||||||
|
- source: continuwuity-resolv.conf
|
||||||
|
target: /etc/resolv.conf
|
||||||
|
|
||||||
traefik:
|
traefik:
|
||||||
image: "traefik:latest"
|
image: "traefik:latest"
|
||||||
@@ -48,7 +50,6 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:z"
|
- "/var/run/docker.sock:/var/run/docker.sock:z"
|
||||||
- "acme:/etc/traefik/acme"
|
- "acme:/etc/traefik/acme"
|
||||||
#- "./traefik_config:/etc/traefik:z"
|
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
|
||||||
@@ -90,3 +91,9 @@ volumes:
|
|||||||
|
|
||||||
networks:
|
networks:
|
||||||
proxy:
|
proxy:
|
||||||
|
|
||||||
|
configs:
|
||||||
|
continuwuity-resolv.conf:
|
||||||
|
content: |
|
||||||
|
nameserver 1.0.0.1
|
||||||
|
nameserver 1.1.1.1
|
||||||
@@ -16,6 +16,16 @@ services:
|
|||||||
CONTINUWUITY_ADDRESS: 0.0.0.0
|
CONTINUWUITY_ADDRESS: 0.0.0.0
|
||||||
CONTINUWUITY_PORT: 8008
|
CONTINUWUITY_PORT: 8008
|
||||||
#CONTINUWUITY_CONFIG: '/etc/continuwuity.toml' # Uncomment if you mapped config toml above
|
#CONTINUWUITY_CONFIG: '/etc/continuwuity.toml' # Uncomment if you mapped config toml above
|
||||||
|
configs: # using custom resolver instead of Docker's
|
||||||
|
- source: continuwuity-resolv.conf
|
||||||
|
target: /etc/resolv.conf
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
db:
|
db:
|
||||||
|
|
||||||
|
configs:
|
||||||
|
continuwuity-resolv.conf:
|
||||||
|
content: |
|
||||||
|
nameserver 1.0.0.1
|
||||||
|
nameserver 1.1.1.1
|
||||||
Reference in New Issue
Block a user