From 932ae43621382ae0b0faf691d1e7b7870817911d Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Sat, 15 Feb 2025 11:06:09 +0100 Subject: [PATCH] bundles/docker-engine: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGLLLLLLLLLLLLLLLLLLLLLLLLL networking is apparently hard --- bundles/docker-engine/files/docker-wrapper | 4 +++- bundles/docker-engine/items.py | 19 +++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/bundles/docker-engine/files/docker-wrapper b/bundles/docker-engine/files/docker-wrapper index 20bf38d..adff8e4 100644 --- a/bundles/docker-engine/files/docker-wrapper +++ b/bundles/docker-engine/files/docker-wrapper @@ -17,8 +17,9 @@ PGID="$(id -g "docker-${name}")" if [ "$ACTION" == "start" ] then + docker rm "${name}" || true + docker run -d \ - --rm \ --name "${name}" \ --env "PUID=$PUID" \ --env "PGID=$PGID" \ @@ -26,6 +27,7 @@ then % for k, v in sorted(environment.items()): --env "${k}=${v}" \ % endfor + --network aaarghhh \ % for host_port, container_port in sorted(ports.items()): --publish "127.0.0.1:${host_port}:${container_port}" \ % endfor diff --git a/bundles/docker-engine/items.py b/bundles/docker-engine/items.py index 9e52eca..941c766 100644 --- a/bundles/docker-engine/items.py +++ b/bundles/docker-engine/items.py @@ -28,6 +28,21 @@ files['/usr/local/share/icinga/plugins/check_docker_container'] = { 'mode': '0755', } +actions['docker_create_nondefault_network'] = { + # + # By default, containers inherit the DNS settings as defined in the + # /etc/resolv.conf configuration file. Containers that attach to the + # default bridge network receive a copy of this file. Containers that + # attach to a custom network use Docker's embedded DNS server. The embedded + # DNS server forwards external DNS lookups to the DNS servers configured on + # the host. + 'command': 'docker network create aaarghhh', + 'unless': 'docker network ls | grep -q -F aaarghhh', + 'needs': { + 'svc_systemd:docker', + }, +} + for app, config in node.metadata.get('docker-engine/containers', {}).items(): volumes = config.get('volumes', {}) @@ -54,8 +69,8 @@ for app, config in node.metadata.get('docker-engine/containers', {}).items(): 'docker', }, 'after': { - # provides docker group - 'pkg_apt:docker-ce', + 'action:docker_create_nondefault_network', + 'svc_systemd:docker', }, }