From 94a1b2a6b035144831b7030d888b1301ba5d9fcc Mon Sep 17 00:00:00 2001 From: Tom Wilkie Date: Mon, 8 Jun 2015 16:29:18 +0000 Subject: [PATCH] Use a bash command in a docker container to work out host IP addresses. --- scope | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scope b/scope index f46221fed..40bf35e4c 100755 --- a/scope +++ b/scope @@ -25,6 +25,8 @@ DOMAINNAME=weave.local FQDN=$HOSTNAME.$DOMAINNAME DOCKER_BRIDGE=${DOCKER_BRIDGE:-docker0} IP_REGEXP="[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" +IP_ADDR_CMD="find /sys/class/net -type l | xargs -n1 basename | grep -vE 'docker|veth|lo' | \ + xargs -n1 ip addr show | grep inet | awk '{ print \$2 }' | grep -oE '$IP_REGEXP'" [ $# -gt 0 ] || usage COMMAND=$1 @@ -143,8 +145,8 @@ case "$COMMAND" in -v /var/run/docker.sock:/var/run/docker.sock \ $WEAVESCOPE_DOCKER_ARGS $SCOPE_IMAGE $WEAVESCOPE_DNS_ARGS "$@") + IP_ADDRS=$(docker run --net=host gliderlabs/alpine /bin/sh -c "$IP_ADDR_CMD") if dns_running; then - IP_ADDRS=$(hostname -I) if [ -z "$IP_ADDRS" ]; then echo "Could not determine local IP address; Weave DNS integration will not work correctly." exit 1 @@ -155,7 +157,7 @@ case "$COMMAND" in echo $CONTAINER echo "Weave Scope is reachable at the following URL(s):" >&2 - for ip in $(hostname -I); do + for ip in $IP_ADDRS; do echo " * http://$ip:4040/" >&2 done ;;