From 3ff5e0e3a6596754bb9f4e107d1dda51bb6281b9 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Wed, 7 Sep 2022 10:53:49 -0400 Subject: [PATCH] fix: error out if commands using compose are executed Refs #5335 --- plugins/caddy-vhosts/command-functions | 12 ++++++++++++ plugins/common/functions | 12 ++++++++++++ plugins/traefik-vhosts/command-functions | 12 ++++++++++++ 3 files changed, 36 insertions(+) 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