diff --git a/deploy b/deploy
index f2b71c6c56c9d459bf3468216ee3dbd7bf9f7a29..4c175e162f9c3c302980698726231a9dccde399d 100755
--- a/deploy
+++ b/deploy
@@ -1,6 +1,12 @@
 #!/bin/sh
 set -eu
 
+_check() {
+    containers="$(until docker-compose ps -q; do true; done)"
+    # shellcheck disable=SC2086
+    docker container inspect --format '{{ .State.Health.Status }}' $containers | grep -v '^healthy$'
+}
+
 _deploy() {
     echo "Deploying to $1" >&2
     export DOCKER_HOST="ssh://$1"
@@ -10,11 +16,11 @@ _deploy() {
     for i in $(seq 12)
     do
         # shellcheck disable=SC2046
-        docker container inspect --format '{{ .State.Health.Status }}' $(docker-compose ps -q) | grep -v '^healthy$' || break
+        _check || break
         sleep 10
     done
     # shellcheck disable=SC2046
-    ! docker container inspect --format '{{ .State.Health.Status }}' $(docker-compose ps -q) | grep -v '^healthy$'
+    ! _check
     unset DOCKER_HOST
     unset RUNNER_NAME
 }