Revert "Make Scope work on Docker for Mac" (#1439)

This commit is contained in:
Tom Wilkie
2016-05-06 13:28:51 +01:00
parent 1b7399d284
commit 77be6863d4

64
scope
View File

@@ -2,8 +2,6 @@
set -eu
ARGS="$@"
usage() {
echo "Usage:"
echo "scope launch [<peer> ...]"
@@ -24,7 +22,6 @@ IMAGE_VERSION=${VERSION:-$IMAGE_VERSION}
SCOPE_IMAGE_NAME=weaveworks/scope
SCOPE_IMAGE=$SCOPE_IMAGE_NAME:$IMAGE_VERSION
SCOPE_CONTAINER_NAME=weavescope
SCOPE_APP_CONTAINER_NAME=weavescope-app
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'"
@@ -64,17 +61,6 @@ check_docker_version() {
fi
}
check_probe_only() {
echo "${ARGS}" | grep -q -E "\-\-no\-app|\-\-service\-token|\-\-probe\-only"
}
check_docker_for_mac() {
docker_for_mac_network_mode="${HOME}/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/network"
[ "$(uname)" = "Darwin" ] \
&& [ -S /var/run/docker.sock ] \
&& grep -q hybrid $docker_for_mac_network_mode 2>/dev/null
}
# Check that a container named $1 with image $2 is not running
check_not_running() {
case $(docker inspect --format='{{.State.Running}} {{.Config.Image}}' $1 2>/dev/null) in
@@ -111,13 +97,6 @@ launch_command() {
$WEAVESCOPE_DOCKER_ARGS $SCOPE_IMAGE --probe.docker=true "$@"
}
launch_app_command() {
echo docker run -d --name=$SCOPE_APP_CONTAINER_NAME \
-e CHECKPOINT_DISABLE \
-p 0.0.0.0:4040:4040 \
$WEAVESCOPE_DOCKER_ARGS $SCOPE_IMAGE --no-probe "$@"
}
check_docker_version
case "$COMMAND" in
@@ -149,38 +128,18 @@ EOF
;;
launch)
if ! check_docker_for_mac || check_probe_only ; then
check_not_running $SCOPE_CONTAINER_NAME $SCOPE_IMAGE_NAME
docker rm -f $SCOPE_CONTAINER_NAME >/dev/null 2>&1 || true
CONTAINER=$($(launch_command "$@"))
echo $CONTAINER
elif check_docker_for_mac ; then
# Docker for Mac (as of beta9) does not ship vmnet driver and
# thereby only access container ports via a tunnel, preventing
# access to host ports of the VM.
# - https://github.com/weaveworks/scope/issues/1411
# - https://forums.docker.com/t/ports-in-host-network-namespace-are-not-accessible/10789
check_not_running $SCOPE_APP_CONTAINER_NAME $SCOPE_IMAGE_NAME
docker rm -f $SCOPE_APP_CONTAINER_NAME >/dev/null 2>&1 || true
CONTAINER=$($(launch_app_command "$@"))
echo $CONTAINER
app_ip=$(docker inspect -f '{{.NetworkSettings.IPAddress}}' "${CONTAINER}")
check_not_running $SCOPE_CONTAINER_NAME $SCOPE_IMAGE_NAME
docker rm -f $SCOPE_CONTAINER_NAME >/dev/null 2>&1 || true
CONTAINER=$($(launch_command --no-app "$@" "${app_ip}:4040"))
echo $CONTAINER
fi
check_not_running $SCOPE_CONTAINER_NAME $SCOPE_IMAGE_NAME
docker rm -f $SCOPE_CONTAINER_NAME >/dev/null 2>&1 || true
if ! check_probe_only ; then
CONTAINER=$($(launch_command "$@"))
echo $CONTAINER
if ! echo "$@" | grep -E "\-\-no\-app|\-\-service\-token" 1>/dev/null; then
IP_ADDRS=$(docker run --rm --net=host --entrypoint /bin/sh $SCOPE_IMAGE -c "$IP_ADDR_CMD")
echo "Weave Scope is reachable at the following URL(s):" >&2
if ! check_docker_for_mac ; then
for ip in $IP_ADDRS; do
echo " * http://$ip:4040/" >&2
done
else
echo " * http://localhost:4040/" >&2
fi
for ip in $IP_ADDRS; do
echo " * http://$ip:4040/" >&2
done
fi
;;
@@ -189,11 +148,6 @@ EOF
if ! docker stop $SCOPE_CONTAINER_NAME >/dev/null 2>&1 ; then
echo "Weave Scope is not running." >&2
fi
if check_docker_for_mac ; then
if ! docker stop $SCOPE_APP_CONTAINER_NAME >/dev/null 2>&1 ; then
echo "Weave Scope app is not running." >&2
fi
fi
;;
*)