docker(role): document gVisor issue with user-def. br. and provide help
Some checks failed
/ Ansible Lint (push) Successful in 3m53s
/ build (pull_request) Failing after 2m40s
/ Ansible Lint (pull_request) Successful in 2m41s

Document issue with containers on user-defined bridges and using the
gVisor runsc runtime. Also provide a helper resolv.conf as a workaround.
This commit is contained in:
June 2026-05-21 04:44:16 +02:00
commit fdd9eadad1
Signed by: june
SSH key fingerprint: SHA256:o9EAq4Y9N9K0pBQeBTqhSDrND5E7oB+60ZNx0U1yPe0
3 changed files with 21 additions and 0 deletions

View file

@ -17,6 +17,8 @@ None.
## Optional Arguments
- `docker__gvisor_setup`: Whether or not to set up [gVisor](https://gvisor.dev/) (`runsc` runtime).
> Note: gVisor doesn't work with the embedded DNS server Docker forces for user-defined bridges (see the [relevant GitHub issue](https://github.com/google/gvisor/issues/7469)). A workaround would be to bind mount a `resolv.conf` not relying on localhost DNS (note however that this still doesn't provide local container name resolution). When enabling this option such a helper `resolv.conf` pointing to Quad9 gets deployed to `/etc/gvisor-helper-resolv.conf` for bind-mounting. See the file for usage instructions.
Defaults to `false`.
## Links & Resources

View file

@ -0,0 +1,9 @@
# resolv.conf pointing to Quad9 for bind-mounting into containers on user-defined bridges and using the gVisor runsc runtime.
# Example: docker run --runtime runsc --mount type=bind,src=/etc/gvisor-helper-resolv.conf,dst=/etc/resolv.conf,ro=true --network your-user-defined-network -it --rm docker.io/library/debian /bin/bash
nameserver 9.9.9.9
nameserver 149.112.112.112
nameserver 2620:fe::fe
nameserver 2620:fe::9
options edns0

View file

@ -10,3 +10,13 @@
mode: "0644"
become: true
notify: restart the docker service
- name: Ensure helper gVisor resolv.conf is deployed
when: docker__gvisor_setup
ansible.builtin.copy:
src: gvisor-helper-resolv.conf
dest: /etc/gvisor-helper-resolv.conf
owner: root
group: root
mode: "0644"
become: true