diff --git a/plugins/network/network.go b/plugins/network/network.go index 6bb256371..cab14abcd 100644 --- a/plugins/network/network.go +++ b/plugins/network/network.go @@ -95,7 +95,7 @@ func GetContainerIpaddress(appName, procType, containerID string) (ipAddr string return } - b, err := common.DockerInspect(containerID, "'{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'") + b, err := common.DockerInspect(containerID, "'{{.NetworkSettings.Networks.bridge.IPAddress}}'") if err != nil || len(b) == 0 { // docker < 1.9 compatibility b, err = common.DockerInspect(containerID, "'{{ .NetworkSettings.IPAddress }}'") diff --git a/tests/unit/20_nginx-vhosts_1.bats b/tests/unit/20_nginx-vhosts_1.bats index 6a7d7121a..8a5c8eeb3 100644 --- a/tests/unit/20_nginx-vhosts_1.bats +++ b/tests/unit/20_nginx-vhosts_1.bats @@ -10,6 +10,7 @@ setup() { } teardown() { + detach_delete_network destroy_app [[ -f "$DOKKU_ROOT/VHOST.bak" ]] && mv "$DOKKU_ROOT/VHOST.bak" "$DOKKU_ROOT/VHOST" && chown dokku:dokku "$DOKKU_ROOT/VHOST" [[ -f "$DOKKU_ROOT/HOSTNAME.bak" ]] && mv "$DOKKU_ROOT/HOSTNAME.bak" "$DOKKU_ROOT/HOSTNAME" && chown dokku:dokku "$DOKKU_ROOT/HOSTNAME" @@ -130,3 +131,13 @@ teardown() { assert_http_success http://www.test.app.dokku.me:3003 } + +@test "(nginx-vhosts) nginx:build-config (multiple networks)" { + deploy_app + + create_attach_network + run dokku nginx:build-config "$TEST_APP" + echo "output: "$output + echo "status: "$status + assert_success +} diff --git a/tests/unit/test_helper.bash b/tests/unit/test_helper.bash index d04462739..b97e6dc02 100644 --- a/tests/unit/test_helper.bash +++ b/tests/unit/test_helper.bash @@ -11,6 +11,7 @@ PLUGIN_CORE_AVAILABLE_PATH=${PLUGIN_CORE_AVAILABLE_PATH:="$PLUGIN_CORE_PATH/avai CUSTOM_TEMPLATE_SSL_DOMAIN=customssltemplate.dokku.me UUID=$(tr -dc 'a-z0-9' < /dev/urandom | fold -w 32 | head -n 1) TEST_APP="rdmtestapp-${UUID}" +TEST_NETWORK="test-network-${UUID}" SKIPPED_TEST_ERR_MSG="previous test failed! skipping remaining tests..." # global setup() and teardown() @@ -378,3 +379,45 @@ build_nginx_config() { dokku domains:setup "$TEST_APP" dokku nginx:build-config "$TEST_APP" } + +create_network() { + local NETWORK_NAME="$1:=$TEST_NETWORK" + + NETWORK=$(docker network ls -q -f name="$NETWORK_NAME") + [[ -z "$NETWORK" ]] && docker network create "$NETWORK_NAME" +} + +attach_network() { + local NETWORK_NAME="$1:=$TEST_NETWORK" + + NETWORK=$(docker network ls -q -f name="$NETWORK_NAME") + [[ -n "$NETWORK" ]] && docker network connect "$NETWORK_NAME" "${TEST_APP}.web.1" +} + +create_attach_network() { + local NETWORK_NAME="$1:=$TEST_NETWORK" + + create_network "$NETWORK_NAME" + attach_network "$NETWORK_NAME" +} + +delete_network() { + local NETWORK_NAME="$1:=$TEST_NETWORK" + + NETWORK=$(docker network ls -q -f name="$NETWORK_NAME") + [[ -n "$NETWORK" ]] && docker network rm "$NETWORK_NAME" +} + +detach_network() { + local NETWORK_NAME="$1:=$TEST_NETWORK" + + NETWORK=$(docker network ls -q -f name="$NETWORK_NAME") + [[ -z "$NETWORK" ]] && docker network disconnect "$NETWORK_NAME" "${TEST_APP}.web.1" +} + +detach_delete_network() { + local NETWORK_NAME="$1:=$TEST_NETWORK" + + detach_network "$NETWORK_NAME" + delete_network "$NETWORK_NAME" +}