diff --git a/plugins/network/network.go b/plugins/network/network.go index f87252ff1..24b8e45a8 100644 --- a/plugins/network/network.go +++ b/plugins/network/network.go @@ -174,11 +174,14 @@ func GetContainerPort(appName, processType string, containerID string, isHerokui break } } - cmd := sh.Command(common.DockerBin(), "container", "port", containerID, port) - cmd.Stderr = ioutil.Discard - b, err := cmd.Output() - if err == nil { - port = strings.Split(string(b[:]), ":")[1] + + if port != "" { + cmd := sh.Command(common.DockerBin(), "container", "port", containerID, port) + cmd.Stderr = ioutil.Discard + b, err := cmd.Output() + if err == nil { + port = strings.Split(string(b[:]), ":")[1] + } } } else { port = "5000" diff --git a/tests/unit/network.bats b/tests/unit/network.bats index db5ca41bf..338e26c1a 100644 --- a/tests/unit/network.bats +++ b/tests/unit/network.bats @@ -241,3 +241,25 @@ teardown() { echo "status: $status" assert_success } + +@test "(network) handle single-udp app" { + run /bin/bash -c "dokku docker-options:add $TEST_APP -p 1194:1194" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "dokku checks:disable $TEST_APP" + echo "output: $output" + echo "status: $status" + assert_success + + # The app _should_ fail to deploy because it requires some config file + # but we really only care about getting to pre-flight checks so that is fine. + # It does not because of some yet unknown bug in deploying when zero-downtime is disable... + run /bin/bash -c "dokku git:from-image $TEST_APP kylemanna/openvpn:latest" + echo "output: $output" + echo "status: $status" + assert_success + assert_output_contains "Attempting pre-flight checks" 0 + assert_output_contains "Application deployed" +}