/
/
/
1#!/bin/bash
2# Docker Network Connectivity Test for Runner Services
3# Generated by Ansible - DO NOT EDIT MANUALLY
4
5set -euo pipefail
6
7NETWORK_NAME="{{ runner_docker_network }}"
8NETWORK_SUBNET="{{ runner_network_subnet }}"
9TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
10
11echo "[$TIMESTAMP] Testing Docker network connectivity for $NETWORK_NAME"
12
13# Check if network exists
14if ! docker network ls | grep -q "$NETWORK_NAME"; then
15 echo "ERROR: Network $NETWORK_NAME does not exist"
16 exit 1
17fi
18
19# Inspect network
20echo "Network Details:"
21docker network inspect "$NETWORK_NAME" --format="{% raw %}{{json .}}{% endraw %}" | jq -r '
22 "Name: " + .Name + "\n" +
23 "Driver: " + .Driver + "\n" +
24 "Subnet: " + (.IPAM.Config[0].Subnet // "N/A") + "\n" +
25 "Gateway: " + (.IPAM.Config[0].Gateway // "auto-assigned")
26'
27
28# Test network connectivity with a temporary container
29echo "Testing network connectivity..."
30if docker run --rm --network="$NETWORK_NAME" alpine:latest ping -c 3 google.com >/dev/null 2>&1; then
31 echo "â External connectivity: OK"
32else
33 echo "â External connectivity: Limited (normal for isolated networks)"
34fi
35
36# List containers on this network
37echo "Containers on network:"
38docker network inspect "$NETWORK_NAME" --format="{% raw %}{{range .Containers}}{{.Name}} ({{.IPv4Address}}){{end}}{% endraw %}" | tr ' ' '\n' | grep -v '^$' || echo "No containers currently connected"
39
40echo "[$TIMESTAMP] Network test completed successfully"