diff --git a/plugins/caddy-vhosts/command-functions b/plugins/caddy-vhosts/command-functions index 9e4347da5..d7409da1e 100755 --- a/plugins/caddy-vhosts/command-functions +++ b/plugins/caddy-vhosts/command-functions @@ -108,6 +108,10 @@ cmd-caddy-show-config() { declare cmd="caddy:show-config" [[ "$1" == "$cmd" ]] && shift 1 + if ! fn-is-compose-installed; then + dokku_log_fail "Required docker compose plugin is not installed" + fi + local TMP_COMPOSE_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX") trap "rm -rf '$TMP_COMPOSE_FILE' >/dev/null" RETURN INT TERM EXIT @@ -120,6 +124,10 @@ cmd-caddy-start() { declare cmd="caddy:start" [[ "$1" == "$cmd" ]] && shift 1 + if ! fn-is-compose-installed; then + dokku_log_fail "Required docker compose plugin is not installed" + fi + local TMP_COMPOSE_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX") trap "rm -rf '$TMP_COMPOSE_FILE' >/dev/null" RETURN INT TERM EXIT @@ -132,6 +140,10 @@ cmd-caddy-stop() { declare cmd="caddy:start" [[ "$1" == "$cmd" ]] && shift 1 + if ! fn-is-compose-installed; then + dokku_log_fail "Required docker compose plugin is not installed" + fi + local TMP_COMPOSE_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX") trap "rm -rf '$TMP_COMPOSE_FILE' >/dev/null" RETURN INT TERM EXIT diff --git a/plugins/common/functions b/plugins/common/functions index e2abf8bbf..232a31c27 100755 --- a/plugins/common/functions +++ b/plugins/common/functions @@ -399,6 +399,18 @@ get_docker_version() { echo "$CLIENT_VERSION_STRING" } +fn-is-compose-installed() { + declare desc="check if the compose docker plugin is installed" + local COMPOSE_INSTALLED + COMPOSE_INSTALLED="$(docker info -f '{{range .ClientInfo.Plugins}}{{if eq .Name "compose"}}true{{end}}')" + + if [[ "$COMPOSE_INSTALLED" == "true" ]]; then + return 0 + fi + + return 1 +} + is_number() { declare desc="returns 0 if input is a number" local NUMBER=$1 diff --git a/plugins/traefik-vhosts/command-functions b/plugins/traefik-vhosts/command-functions index 423256a5c..1df4b90c8 100755 --- a/plugins/traefik-vhosts/command-functions +++ b/plugins/traefik-vhosts/command-functions @@ -111,6 +111,10 @@ cmd-traefik-show-config() { declare cmd="traefik:show-config" [[ "$1" == "$cmd" ]] && shift 1 + if ! fn-is-compose-installed; then + dokku_log_fail "Required docker compose plugin is not installed" + fi + local TMP_COMPOSE_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX") trap "rm -rf '$TMP_COMPOSE_FILE' >/dev/null" RETURN INT TERM EXIT @@ -123,6 +127,10 @@ cmd-traefik-start() { declare cmd="traefik:start" [[ "$1" == "$cmd" ]] && shift 1 + if ! fn-is-compose-installed; then + dokku_log_fail "Required docker compose plugin is not installed" + fi + local TMP_COMPOSE_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX") trap "rm -rf '$TMP_COMPOSE_FILE' >/dev/null" RETURN INT TERM EXIT @@ -137,6 +145,10 @@ cmd-traefik-stop() { declare cmd="traefik:start" [[ "$1" == "$cmd" ]] && shift 1 + if ! fn-is-compose-installed; then + dokku_log_fail "Required docker compose plugin is not installed" + fi + local TMP_COMPOSE_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX") trap "rm -rf '$TMP_COMPOSE_FILE' >/dev/null" RETURN INT TERM EXIT