Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6ebdb98ac8 | ||
|
|
b7e092db39 | ||
|
|
3f338c7985 | ||
|
|
1cde514fba | ||
|
|
d281d63afb | ||
|
|
535bbd839f | ||
|
|
1c4d20cd18 | ||
|
|
90f6f1db08 | ||
|
|
f0c5009e1a | ||
|
|
674d10ea4d | ||
|
|
4e3a77ab0e | ||
|
|
4ea17b07dc | ||
|
|
d5a4cddc3f | ||
|
|
2909ba7a9b | ||
|
|
307f5d7378 | ||
|
|
9cf8a5880f | ||
|
|
63eb33d99c | ||
|
|
704c24a9ef | ||
|
|
140639917d | ||
|
|
8a738a832a | ||
|
|
7a3c4f7345 | ||
|
|
a9948765cd | ||
|
|
4696033532 | ||
|
|
c7231ffb90 | ||
|
|
20164dca78 | ||
|
|
78c2d69811 | ||
|
|
f311936216 | ||
|
|
5c5fd31e36 | ||
|
|
a6a603c571 | ||
|
|
7d535eedcb | ||
|
|
b6658bd6f3 | ||
|
|
71840d6a65 | ||
|
|
7ca117f72e | ||
|
|
7a75ce83a1 | ||
|
|
6fb12698f1 |
@@ -18,7 +18,7 @@ main() {
|
|||||||
# built in the Dockerfile
|
# built in the Dockerfile
|
||||||
PLUGIN_NAME="$(source /tmp/.env && echo "$PLUGIN_NAME")"
|
PLUGIN_NAME="$(source /tmp/.env && echo "$PLUGIN_NAME")"
|
||||||
PLUGIN_VARIABLE="$(source /tmp/.env && echo "$PLUGIN_VARIABLE")"
|
PLUGIN_VARIABLE="$(source /tmp/.env && echo "$PLUGIN_VARIABLE")"
|
||||||
echo "export ${PLUGIN_VARIABLE}_HOST_ROOT=${SERVICE_HOST_ROOT}/$PLUGIN_NAME" > /etc/default/dokku
|
echo "export ${PLUGIN_VARIABLE}_HOST_ROOT=${SERVICE_HOST_ROOT}/$PLUGIN_NAME" >/etc/default/dokku
|
||||||
}
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
FROM postgres:14.1
|
FROM postgres:14.5
|
||||||
|
|||||||
18
README.md
18
README.md
@@ -1,6 +1,6 @@
|
|||||||
# dokku postgres [](https://github.com/dokku/dokku-postgres/actions/workflows/ci.yml?query=branch%3Amaster) [](https://webchat.libera.chat/?channels=dokku)
|
# dokku postgres [](https://github.com/dokku/dokku-postgres/actions/workflows/ci.yml?query=branch%3Amaster) [](https://webchat.libera.chat/?channels=dokku)
|
||||||
|
|
||||||
Official postgres plugin for dokku. Currently defaults to installing [postgres 14.1](https://hub.docker.com/_/postgres/).
|
Official postgres plugin for dokku. Currently defaults to installing [postgres 14.5](https://hub.docker.com/_/postgres/).
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
@@ -41,6 +41,7 @@ postgres:linked <service> <app> # check if the postgres servi
|
|||||||
postgres:links <service> # list all apps linked to the postgres service
|
postgres:links <service> # list all apps linked to the postgres service
|
||||||
postgres:list # list all postgres services
|
postgres:list # list all postgres services
|
||||||
postgres:logs <service> [-t|--tail] <tail-num-optional> # print the most recent log(s) for this service
|
postgres:logs <service> [-t|--tail] <tail-num-optional> # print the most recent log(s) for this service
|
||||||
|
postgres:pause <service> # pause a running postgres service
|
||||||
postgres:promote <service> <app> # promote service <service> as DATABASE_URL in <app>
|
postgres:promote <service> <app> # promote service <service> as DATABASE_URL in <app>
|
||||||
postgres:restart <service> # graceful shutdown and restart of the postgres service container
|
postgres:restart <service> # graceful shutdown and restart of the postgres service container
|
||||||
postgres:start <service> # start a previously stopped postgres service
|
postgres:start <service> # start a previously stopped postgres service
|
||||||
@@ -376,12 +377,25 @@ dokku postgres:start lollipop
|
|||||||
dokku postgres:stop <service>
|
dokku postgres:stop <service>
|
||||||
```
|
```
|
||||||
|
|
||||||
Stop the service and the running container:
|
Stop the service and removes the running container:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
dokku postgres:stop lollipop
|
dokku postgres:stop lollipop
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### pause a running postgres service
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# usage
|
||||||
|
dokku postgres:pause <service>
|
||||||
|
```
|
||||||
|
|
||||||
|
Pause the running container for the service:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
dokku postgres:pause lollipop
|
||||||
|
```
|
||||||
|
|
||||||
### graceful shutdown and restart of the postgres service container
|
### graceful shutdown and restart of the postgres service container
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
|||||||
@@ -148,6 +148,7 @@ def usage_lifecycle(service, variable, alias, image, scheme, ports, options, uni
|
|||||||
"promote",
|
"promote",
|
||||||
"start",
|
"start",
|
||||||
"stop",
|
"stop",
|
||||||
|
"pause",
|
||||||
"restart",
|
"restart",
|
||||||
"upgrade",
|
"upgrade",
|
||||||
]
|
]
|
||||||
|
|||||||
2
commands
2
commands
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/config"
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/config"
|
||||||
[[ " help $PLUGIN_COMMAND_PREFIX:help $PLUGIN_COMMAND_PREFIX $PLUGIN_COMMAND_PREFIX:default " == *" $1 "* ]] || [[ "$1" == "$PLUGIN_COMMAND_PREFIX:"* ]] || exit "$DOKKU_NOT_IMPLEMENTED_EXIT"
|
[[ " help $PLUGIN_COMMAND_PREFIX:help $PLUGIN_COMMAND_PREFIX $PLUGIN_COMMAND_PREFIX:default " == *" $1 "* ]] || [[ "$1" == "$PLUGIN_COMMAND_PREFIX:"* ]] || exit "$DOKKU_NOT_IMPLEMENTED_EXIT"
|
||||||
source "$PLUGIN_BASE_PATH/common/functions"
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
[[ $DOKKU_TRACE ]] && set -x
|
[[ $DOKKU_TRACE ]] && set -x
|
||||||
|
|
||||||
|
|||||||
142
common-functions
142
common-functions
@@ -16,6 +16,73 @@ add_to_links_file() {
|
|||||||
sort "$LINKS_FILE" -u -o "$LINKS_FILE"
|
sort "$LINKS_FILE" -u -o "$LINKS_FILE"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auth_service_filter() {
|
||||||
|
declare desc="calls user-service plugin trigger"
|
||||||
|
declare SERVICES=("$@")
|
||||||
|
local user_auth_count
|
||||||
|
|
||||||
|
if [[ "${#SERVICES[@]}" -eq 0 ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
user_auth_count="$(find "$PLUGIN_PATH"/enabled/*/user-auth-service 2>/dev/null | wc -l)"
|
||||||
|
|
||||||
|
# no plugin trigger exists
|
||||||
|
if [[ $user_auth_count == 0 ]]; then
|
||||||
|
# echo out all the services since there is no plugin trigger
|
||||||
|
for SERVICE in "${SERVICES[@]}"; do
|
||||||
|
[[ -n "$SERVICE" ]] && echo "$SERVICE"
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# this plugin trigger exists in the core `20_events` plugin
|
||||||
|
if [[ "$user_auth_count" == 1 ]] && [[ -f "$PLUGIN_PATH"/enabled/20_events/user-auth-service ]]; then
|
||||||
|
# echo out all the services since there is no valid plugin trigger
|
||||||
|
for SERVICE in "${SERVICES[@]}"; do
|
||||||
|
[[ -n "$SERVICE" ]] && echo "$SERVICE"
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
export SSH_USER=${SSH_USER:=$USER}
|
||||||
|
export SSH_NAME=${NAME:="default"}
|
||||||
|
# the output of this trigger should be all the services a user has access to
|
||||||
|
plugn trigger user-auth-service "$SSH_USER" "$SSH_NAME" "$PLUGIN_COMMAND_PREFIX" "${SERVICES[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
fn-services-list() {
|
||||||
|
declare desc="prints a filtered list of all local apps"
|
||||||
|
declare FILTER="$1"
|
||||||
|
local services=()
|
||||||
|
|
||||||
|
pushd "$PLUGIN_DATA_ROOT" >/dev/null
|
||||||
|
for f in *; do
|
||||||
|
[[ -d $f ]] || continue
|
||||||
|
services+=("$f")
|
||||||
|
done
|
||||||
|
popd &>/dev/null || pushd "/tmp" >/dev/null
|
||||||
|
|
||||||
|
if [[ "${#services[@]}" -eq 0 ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$FILTER" == "false" ]]; then
|
||||||
|
for service in "${services[@]}"; do
|
||||||
|
if [[ -n "$service" ]]; then
|
||||||
|
echo "$service"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
for service in $(auth_service_filter "${services[@]}" 2>/dev/null); do
|
||||||
|
if [[ -n "$service" ]]; then
|
||||||
|
echo "$service"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
docker_ports_options() {
|
docker_ports_options() {
|
||||||
declare desc="export a list of exposed ports"
|
declare desc="export a list of exposed ports"
|
||||||
declare PORTS=("$@")
|
declare PORTS=("$@")
|
||||||
@@ -36,7 +103,7 @@ get_database_name() {
|
|||||||
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
|
|
||||||
if [[ ! -f "$SERVICE_ROOT/DATABASE_NAME" ]]; then
|
if [[ ! -f "$SERVICE_ROOT/DATABASE_NAME" ]]; then
|
||||||
echo "$SERVICE" > "$SERVICE_ROOT/DATABASE_NAME"
|
echo "$SERVICE" >"$SERVICE_ROOT/DATABASE_NAME"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat "$SERVICE_ROOT/DATABASE_NAME"
|
cat "$SERVICE_ROOT/DATABASE_NAME"
|
||||||
@@ -177,12 +244,14 @@ service_alternative_alias() {
|
|||||||
service_app_links() {
|
service_app_links() {
|
||||||
declare desc="output all service links for a given app"
|
declare desc="output all service links for a given app"
|
||||||
declare APP="$1"
|
declare APP="$1"
|
||||||
local SERVICE LINKED_APP
|
local LINKED_APP SERVICE SERVICE_ROOT
|
||||||
|
|
||||||
pushd "$PLUGIN_DATA_ROOT" >/dev/null
|
for SERVICE in $(fn-services-list true); do
|
||||||
for SERVICE in *; do
|
[[ -n "$SERVICE" ]] || continue
|
||||||
[[ -f "$SERVICE/LINKS" ]] || continue
|
|
||||||
for LINKED_APP in $(<"$SERVICE/LINKS"); do
|
SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
|
[[ -f "$SERVICE_ROOT/LINKS" ]] || continue
|
||||||
|
for LINKED_APP in $(<"$SERVICE_ROOT/LINKS"); do
|
||||||
if [[ "$LINKED_APP" == "$APP" ]]; then
|
if [[ "$LINKED_APP" == "$APP" ]]; then
|
||||||
echo "$SERVICE"
|
echo "$SERVICE"
|
||||||
fi
|
fi
|
||||||
@@ -248,7 +317,6 @@ service_commit_config() {
|
|||||||
local CONFIG_VARIABLE="${PLUGIN_VARIABLE}_CONFIG_OPTIONS"
|
local CONFIG_VARIABLE="${PLUGIN_VARIABLE}_CONFIG_OPTIONS"
|
||||||
local ENV_VARIABLE="${PLUGIN_VARIABLE}_CUSTOM_ENV"
|
local ENV_VARIABLE="${PLUGIN_VARIABLE}_CUSTOM_ENV"
|
||||||
|
|
||||||
|
|
||||||
custom_env="${!ENV_VARIABLE}"
|
custom_env="${!ENV_VARIABLE}"
|
||||||
[[ -n "$SERVICE_CUSTOM_ENV" ]] && custom_env="$SERVICE_CUSTOM_ENV"
|
[[ -n "$SERVICE_CUSTOM_ENV" ]] && custom_env="$SERVICE_CUSTOM_ENV"
|
||||||
if [[ -n $custom_env ]]; then
|
if [[ -n $custom_env ]]; then
|
||||||
@@ -375,7 +443,7 @@ service_container_rm() {
|
|||||||
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
||||||
local ID
|
local ID
|
||||||
|
|
||||||
service_stop "$SERVICE"
|
service_pause "$SERVICE"
|
||||||
ID=$(docker ps -aq --no-trunc --filter "name=^/$SERVICE_NAME$" --format '{{ .ID }}') || true
|
ID=$(docker ps -aq --no-trunc --filter "name=^/$SERVICE_NAME$" --format '{{ .ID }}') || true
|
||||||
# this may be 'true' in tests...
|
# this may be 'true' in tests...
|
||||||
if [[ -z "$ID" ]] || [[ "$ID" == "true" ]]; then
|
if [[ -z "$ID" ]] || [[ "$ID" == "true" ]]; then
|
||||||
@@ -411,6 +479,14 @@ service_enter() {
|
|||||||
docker exec $DOKKU_RUN_OPTS $ID $EXEC_CMD "${@:-/bin/bash}"
|
docker exec $DOKKU_RUN_OPTS $ID $EXEC_CMD "${@:-/bin/bash}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
service_exists() {
|
||||||
|
declare desc="returns 0 or 1 depending on whether service exists or not"
|
||||||
|
declare SERVICE="$1"
|
||||||
|
[[ -z "$SERVICE" ]] && return 1
|
||||||
|
[[ -d "$PLUGIN_DATA_ROOT/$SERVICE" ]] && return 0
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
service_exposed_ports() {
|
service_exposed_ports() {
|
||||||
declare desc="list exposed ports for a service"
|
declare desc="list exposed ports for a service"
|
||||||
declare SERVICE="$1"
|
declare SERVICE="$1"
|
||||||
@@ -521,7 +597,7 @@ service_link() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
[[ -n $LINK ]] && dokku_log_fail "Already linked as $LINK"
|
[[ -n $LINK ]] && dokku_log_fail "Already linked as $LINK"
|
||||||
plugn trigger service-action pre-link "$SERVICE" "$APP"
|
plugn trigger service-action pre-link "$PLUGIN_COMMAND_PREFIX" "$SERVICE" "$APP"
|
||||||
add_to_links_file "$SERVICE" "$APP"
|
add_to_links_file "$SERVICE" "$APP"
|
||||||
|
|
||||||
if declare -f -F add_passed_docker_option >/dev/null; then
|
if declare -f -F add_passed_docker_option >/dev/null; then
|
||||||
@@ -532,13 +608,13 @@ service_link() {
|
|||||||
dokku docker-options:add "$APP" build,deploy,run "--link $SERVICE_NAME:$SERVICE_DNS_HOSTNAME"
|
dokku docker-options:add "$APP" build,deploy,run "--link $SERVICE_NAME:$SERVICE_DNS_HOSTNAME"
|
||||||
fi
|
fi
|
||||||
[[ -n "$SERVICE_QUERYSTRING" ]] && SERVICE_URL="${SERVICE_URL}?${SERVICE_QUERYSTRING}"
|
[[ -n "$SERVICE_QUERYSTRING" ]] && SERVICE_URL="${SERVICE_URL}?${SERVICE_QUERYSTRING}"
|
||||||
plugn trigger service-action post-link "$SERVICE" "$APP"
|
plugn trigger service-action post-link "$PLUGIN_COMMAND_PREFIX" "$SERVICE" "$APP"
|
||||||
if [[ "$DOKKU_GLOBAL_FLAGS" == *"--no-restart"* ]]; then
|
if [[ "$DOKKU_GLOBAL_FLAGS" == *"--no-restart"* ]]; then
|
||||||
config_set --no-restart "$APP" "${ALIAS}_URL=$SERVICE_URL"
|
config_set --no-restart "$APP" "${ALIAS}_URL=$SERVICE_URL"
|
||||||
else
|
else
|
||||||
config_set "$APP" "${ALIAS}_URL=$SERVICE_URL"
|
config_set "$APP" "${ALIAS}_URL=$SERVICE_URL"
|
||||||
fi
|
fi
|
||||||
plugn trigger service-action post-link-complete "$SERVICE" "$APP"
|
plugn trigger service-action post-link-complete "$PLUGIN_COMMAND_PREFIX" "$SERVICE" "$APP"
|
||||||
}
|
}
|
||||||
|
|
||||||
service_linked_apps() {
|
service_linked_apps() {
|
||||||
@@ -567,16 +643,16 @@ service_links() {
|
|||||||
|
|
||||||
service_list() {
|
service_list() {
|
||||||
declare desc="list all services and their status"
|
declare desc="list all services and their status"
|
||||||
local SERVICES=$(ls "$PLUGIN_DATA_ROOT" 2>/dev/null)
|
|
||||||
|
|
||||||
if [[ -z $SERVICES ]]; then
|
mapfile -t services < <(fn-services-list true)
|
||||||
|
if [[ "${#services[@]}" -eq 0 ]] || [[ -z "$services" ]]; then
|
||||||
dokku_log_warn "There are no $PLUGIN_SERVICE services"
|
dokku_log_warn "There are no $PLUGIN_SERVICE services"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dokku_log_info2_quiet "$PLUGIN_SERVICE services"
|
dokku_log_info2_quiet "$PLUGIN_SERVICE services"
|
||||||
for SERVICE in $SERVICES; do
|
for service in "${services[@]}"; do
|
||||||
echo "$SERVICE"
|
echo "${service}"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -820,19 +896,19 @@ service_status() {
|
|||||||
echo "missing" && return 0
|
echo "missing" && return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
service_stop() {
|
service_pause() {
|
||||||
declare desc="stop a running service"
|
declare desc="pause a running service"
|
||||||
declare SERVICE="$1"
|
declare SERVICE="$1"
|
||||||
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
||||||
local ID=$(docker ps -aq --no-trunc --filter "name=^/$SERVICE_NAME$" --format '{{ .ID }}') || true
|
local ID=$(docker ps -aq --no-trunc --filter "name=^/$SERVICE_NAME$" --format '{{ .ID }}') || true
|
||||||
[[ -z $ID ]] && dokku_log_warn "Service is already stopped" && return 0
|
[[ -z $ID ]] && dokku_log_warn "Service is already paused" && return 0
|
||||||
|
|
||||||
if [[ -n $ID ]]; then
|
if [[ -n $ID ]]; then
|
||||||
dokku_log_info2_quiet "Stopping container"
|
dokku_log_info2_quiet "Pausing container"
|
||||||
docker stop "$SERVICE_NAME" >/dev/null
|
docker stop "$SERVICE_NAME" >/dev/null
|
||||||
service_port_pause "$SERVICE"
|
service_port_pause "$SERVICE"
|
||||||
dokku_log_verbose_quiet "Container stopped"
|
dokku_log_verbose_quiet "Container paused"
|
||||||
else
|
else
|
||||||
dokku_log_verbose_quiet "No container exists for $SERVICE"
|
dokku_log_verbose_quiet "No container exists for $SERVICE"
|
||||||
fi
|
fi
|
||||||
@@ -848,7 +924,7 @@ service_unlink() {
|
|||||||
local SERVICE_DNS_HOSTNAME=$(service_dns_hostname "$SERVICE")
|
local SERVICE_DNS_HOSTNAME=$(service_dns_hostname "$SERVICE")
|
||||||
local LINK=($(echo "$EXISTING_CONFIG" | grep "$SERVICE_URL" | cut -d: -f1)) || true
|
local LINK=($(echo "$EXISTING_CONFIG" | grep "$SERVICE_URL" | cut -d: -f1)) || true
|
||||||
|
|
||||||
plugn trigger service-action pre-unlink "$SERVICE" "$APP"
|
plugn trigger service-action pre-unlink "$PLUGIN_COMMAND_PREFIX" "$SERVICE" "$APP"
|
||||||
remove_from_links_file "$SERVICE" "$APP"
|
remove_from_links_file "$SERVICE" "$APP"
|
||||||
|
|
||||||
if declare -f -F add_passed_docker_option >/dev/null; then
|
if declare -f -F add_passed_docker_option >/dev/null; then
|
||||||
@@ -860,13 +936,13 @@ service_unlink() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
[[ -z ${LINK[*]} ]] && dokku_log_fail "Not linked to app $APP"
|
[[ -z ${LINK[*]} ]] && dokku_log_fail "Not linked to app $APP"
|
||||||
plugn trigger service-action post-unlink "$SERVICE" "$APP"
|
plugn trigger service-action post-unlink "$PLUGIN_COMMAND_PREFIX" "$SERVICE" "$APP"
|
||||||
if [[ "$DOKKU_GLOBAL_FLAGS" == *"--no-restart"* ]]; then
|
if [[ "$DOKKU_GLOBAL_FLAGS" == *"--no-restart"* ]]; then
|
||||||
config_unset --no-restart "$APP" "${LINK[@]}"
|
config_unset --no-restart "$APP" "${LINK[@]}"
|
||||||
else
|
else
|
||||||
config_unset "$APP" "${LINK[@]}"
|
config_unset "$APP" "${LINK[@]}"
|
||||||
fi
|
fi
|
||||||
plugn trigger service-action post-unlink-complete "$SERVICE" "$APP"
|
plugn trigger service-action post-unlink-complete "$PLUGIN_COMMAND_PREFIX" "$SERVICE" "$APP"
|
||||||
}
|
}
|
||||||
|
|
||||||
service_version() {
|
service_version() {
|
||||||
@@ -887,9 +963,21 @@ update_plugin_scheme_for_app() {
|
|||||||
|
|
||||||
verify_service_name() {
|
verify_service_name() {
|
||||||
declare desc="verify that a service exists"
|
declare desc="verify that a service exists"
|
||||||
declare SERVICE="$1"
|
declare SERVICE="$@"
|
||||||
[[ -z "$SERVICE" ]] && dokku_log_fail "(verify_service_name) SERVICE must not be null"
|
|
||||||
[[ ! -d "$PLUGIN_DATA_ROOT/$SERVICE" ]] && dokku_log_fail "$PLUGIN_SERVICE service $SERVICE does not exist"
|
if [[ -z "$SERVICE" ]]; then
|
||||||
|
dokku_log_fail "SERVICE must not be empty"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -d "$PLUGIN_DATA_ROOT/$SERVICE" ]]; then
|
||||||
|
dokku_log_fail "$PLUGIN_SERVICE service $SERVICE does not exist"
|
||||||
|
fi
|
||||||
|
|
||||||
|
SERVICE="$(auth_service_filter "$SERVICE")"
|
||||||
|
if [[ -z "$SERVICE" ]]; then
|
||||||
|
dokku_log_fail "$PLUGIN_SERVICE service $SERVICE does not exist"
|
||||||
|
fi
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -900,5 +988,5 @@ write_database_name() {
|
|||||||
|
|
||||||
# some datastores do not like special characters in database names
|
# some datastores do not like special characters in database names
|
||||||
# so we need to normalize them out
|
# so we need to normalize them out
|
||||||
echo "$SERVICE" | tr .- _ > "$SERVICE_ROOT/DATABASE_NAME"
|
echo "$SERVICE" | tr .- _ >"$SERVICE_ROOT/DATABASE_NAME"
|
||||||
}
|
}
|
||||||
|
|||||||
8
config
8
config
@@ -27,9 +27,9 @@ if [[ -n $DOKKU_API_VERSION ]]; then
|
|||||||
export PLUGIN_BASE_PATH="$PLUGIN_ENABLED_PATH"
|
export PLUGIN_BASE_PATH="$PLUGIN_ENABLED_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export PLUGIN_BUSYBOX_IMAGE="busybox:1.31.1-uclibc"
|
export PLUGIN_BUSYBOX_IMAGE="busybox:1.34.1-uclibc"
|
||||||
export PLUGIN_AMBASSADOR_IMAGE="dokku/ambassador:0.3.3"
|
export PLUGIN_AMBASSADOR_IMAGE="dokku/ambassador:0.5.0"
|
||||||
export PLUGIN_S3BACKUP_IMAGE="dokku/s3backup:0.10.3"
|
export PLUGIN_S3BACKUP_IMAGE="dokku/s3backup:0.14.0"
|
||||||
export PLUGIN_WAIT_IMAGE="dokku/wait:0.4.3"
|
export PLUGIN_WAIT_IMAGE="dokku/wait:0.6.0"
|
||||||
|
|
||||||
export POSTGRES_CONFIG_OPTIONS=${POSTGRES_CONFIG_OPTIONS:=""}
|
export POSTGRES_CONFIG_OPTIONS=${POSTGRES_CONFIG_OPTIONS:=""}
|
||||||
|
|||||||
10
functions
10
functions
@@ -3,7 +3,7 @@ source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/config"
|
|||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
[[ $DOKKU_TRACE ]] && set -x
|
[[ $DOKKU_TRACE ]] && set -x
|
||||||
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/common-functions"
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/common-functions"
|
||||||
source "$PLUGIN_BASE_PATH/common/functions"
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||||
source "$PLUGIN_AVAILABLE_PATH/config/functions"
|
source "$PLUGIN_AVAILABLE_PATH/config/functions"
|
||||||
if [[ -f "$PLUGIN_AVAILABLE_PATH/docker-options/functions" ]]; then
|
if [[ -f "$PLUGIN_AVAILABLE_PATH/docker-options/functions" ]]; then
|
||||||
source "$PLUGIN_AVAILABLE_PATH/docker-options/functions"
|
source "$PLUGIN_AVAILABLE_PATH/docker-options/functions"
|
||||||
@@ -40,7 +40,7 @@ service_create() {
|
|||||||
docker pull "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" || dokku_log_fail "$PLUGIN_SERVICE image $PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION pull failed"
|
docker pull "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" || dokku_log_fail "$PLUGIN_SERVICE image $PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION pull failed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
plugn trigger service-action pre-create "$SERVICE"
|
plugn trigger service-action pre-create "$PLUGIN_COMMAND_PREFIX" "$SERVICE"
|
||||||
mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory"
|
mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory"
|
||||||
mkdir -p "$SERVICE_ROOT/data" || dokku_log_fail "Unable to create service data directory"
|
mkdir -p "$SERVICE_ROOT/data" || dokku_log_fail "Unable to create service data directory"
|
||||||
touch "$LINKS_FILE"
|
touch "$LINKS_FILE"
|
||||||
@@ -55,9 +55,9 @@ service_create() {
|
|||||||
|
|
||||||
service_commit_config "$SERVICE"
|
service_commit_config "$SERVICE"
|
||||||
write_database_name "$SERVICE"
|
write_database_name "$SERVICE"
|
||||||
plugn trigger service-action post-create "$SERVICE"
|
plugn trigger service-action post-create "$PLUGIN_COMMAND_PREFIX" "$SERVICE"
|
||||||
service_create_container "$SERVICE"
|
service_create_container "$SERVICE"
|
||||||
plugn trigger service-action post-create-complete "$SERVICE"
|
plugn trigger service-action post-create-complete "$PLUGIN_COMMAND_PREFIX" "$SERVICE"
|
||||||
}
|
}
|
||||||
|
|
||||||
service_create_container() {
|
service_create_container() {
|
||||||
@@ -97,7 +97,7 @@ service_create_container() {
|
|||||||
docker exec "$SERVICE_NAME" su - postgres -c "createdb -E utf8 $DATABASE_NAME" 2>/dev/null || dokku_log_verbose_quiet 'Already exists'
|
docker exec "$SERVICE_NAME" su - postgres -c "createdb -E utf8 $DATABASE_NAME" 2>/dev/null || dokku_log_verbose_quiet 'Already exists'
|
||||||
|
|
||||||
dokku_log_verbose_quiet "Securing connection to database"
|
dokku_log_verbose_quiet "Securing connection to database"
|
||||||
service_stop "$SERVICE" >/dev/null
|
service_pause "$SERVICE" >/dev/null
|
||||||
docker run --rm -i -v "$SERVICE_HOST_ROOT/data:/var/lib/postgresql/data" "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" bash -s <"$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/scripts/enable_ssl.sh" &>/dev/null
|
docker run --rm -i -v "$SERVICE_HOST_ROOT/data:/var/lib/postgresql/data" "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" bash -s <"$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/scripts/enable_ssl.sh" &>/dev/null
|
||||||
|
|
||||||
PREVIOUS_ID=$(docker ps -aq --no-trunc --filter "status=exited" --filter "name=^/$SERVICE_NAME$" --format '{{ .ID }}') || true
|
PREVIOUS_ID=$(docker ps -aq --no-trunc --filter "status=exited" --filter "name=^/$SERVICE_NAME$" --format '{{ .ID }}') || true
|
||||||
|
|||||||
7
install
7
install
@@ -44,15 +44,14 @@ EOL
|
|||||||
|
|
||||||
chmod 0440 "$_SUDOERS_FILE"
|
chmod 0440 "$_SUDOERS_FILE"
|
||||||
|
|
||||||
local SERVICES=$(ls "$PLUGIN_DATA_ROOT" 2>/dev/null)
|
for SERVICE in $(fn-services-list false); do
|
||||||
for SERVICE in $SERVICES; do
|
|
||||||
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
|
|
||||||
if [[ ! -f "$SERVICE_ROOT/IMAGE" ]] || [[ ! -f "$SERVICE_ROOT/IMAGE_VERSION" ]]; then
|
if [[ ! -f "$SERVICE_ROOT/IMAGE" ]] || [[ ! -f "$SERVICE_ROOT/IMAGE_VERSION" ]]; then
|
||||||
local image="$(service_version "$SERVICE")"
|
local image="$(service_version "$SERVICE")"
|
||||||
if [[ "$image" == *":"* ]]; then
|
if [[ "$image" == *":"* ]]; then
|
||||||
echo "${image%:*}" > "$SERVICE_ROOT/IMAGE"
|
echo "${image%:*}" >"$SERVICE_ROOT/IMAGE"
|
||||||
echo "${image##*:}" > "$SERVICE_ROOT/IMAGE_VERSION"
|
echo "${image##*:}" >"$SERVICE_ROOT/IMAGE_VERSION"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[plugin]
|
[plugin]
|
||||||
description = "dokku postgres service plugin"
|
description = "dokku postgres service plugin"
|
||||||
version = "1.19.3"
|
version = "1.26.0"
|
||||||
[plugin.config]
|
[plugin.config]
|
||||||
|
|||||||
@@ -8,8 +8,7 @@ set -eo pipefail
|
|||||||
plugin-post-app-clone-setup() {
|
plugin-post-app-clone-setup() {
|
||||||
declare OLD_APP_NAME="$1" NEW_APP_NAME="$2"
|
declare OLD_APP_NAME="$1" NEW_APP_NAME="$2"
|
||||||
|
|
||||||
local SERVICES=$(ls "$PLUGIN_DATA_ROOT" 2>/dev/null)
|
for SERVICE in $(fn-services-list false); do
|
||||||
for SERVICE in $SERVICES; do
|
|
||||||
if in_links_file "$SERVICE" "$OLD_APP_NAME"; then
|
if in_links_file "$SERVICE" "$OLD_APP_NAME"; then
|
||||||
add_to_links_file "$SERVICE" "$NEW_APP_NAME"
|
add_to_links_file "$SERVICE" "$NEW_APP_NAME"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -8,8 +8,7 @@ set -eo pipefail
|
|||||||
plugin-post-app-rename-setup() {
|
plugin-post-app-rename-setup() {
|
||||||
declare OLD_APP_NAME="$1" NEW_APP_NAME="$2"
|
declare OLD_APP_NAME="$1" NEW_APP_NAME="$2"
|
||||||
|
|
||||||
local SERVICES=$(ls "$PLUGIN_DATA_ROOT" 2>/dev/null)
|
for SERVICE in $(fn-services-list false); do
|
||||||
for SERVICE in $SERVICES; do
|
|
||||||
if in_links_file "$SERVICE" "$OLD_APP_NAME"; then
|
if in_links_file "$SERVICE" "$OLD_APP_NAME"; then
|
||||||
add_to_links_file "$SERVICE" "$NEW_APP_NAME"
|
add_to_links_file "$SERVICE" "$NEW_APP_NAME"
|
||||||
fi
|
fi
|
||||||
|
|||||||
16
pre-delete
16
pre-delete
@@ -1,21 +1,13 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||||
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/config"
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/config"
|
||||||
source "$PLUGIN_BASE_PATH/common/functions"
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/functions"
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
[[ $DOKKU_TRACE ]] && set -x
|
[[ $DOKKU_TRACE ]] && set -x
|
||||||
|
|
||||||
PLUGIN_BASE_PATH="$PLUGIN_PATH"
|
|
||||||
if [[ -n $DOKKU_API_VERSION ]]; then
|
|
||||||
PLUGIN_BASE_PATH="$PLUGIN_ENABLED_PATH"
|
|
||||||
fi
|
|
||||||
source "$PLUGIN_BASE_PATH/common/functions"
|
|
||||||
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/functions"
|
|
||||||
|
|
||||||
APP="$1"
|
APP="$1"
|
||||||
pushd "$PLUGIN_DATA_ROOT" >/dev/null
|
for SERVICE in $(fn-services-list false); do
|
||||||
for SERVICE in *; do
|
[[ -n "$SERVICE" ]] || continue
|
||||||
dokku_log_verbose_quiet "Unlinking from $SERVICE"
|
dokku_log_verbose_quiet "Unlinking from $SERVICE"
|
||||||
remove_from_links_file "$(basename "$SERVICE")" "$APP"
|
remove_from_links_file "$(basename "$SERVICE")" "$APP"
|
||||||
done
|
done
|
||||||
popd >/dev/null 2>&1 || pushd "/tmp" >/dev/null
|
|
||||||
exit 0
|
|
||||||
|
|||||||
@@ -7,18 +7,18 @@ set -eo pipefail
|
|||||||
|
|
||||||
plugin-pre-restore() {
|
plugin-pre-restore() {
|
||||||
declare SCHEDULER="$1" APP="$2"
|
declare SCHEDULER="$1" APP="$2"
|
||||||
|
local status
|
||||||
|
|
||||||
if [[ "$SCHEDULER" != "docker-local" ]]; then
|
if [[ "$SCHEDULER" != "docker-local" ]]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local SERVICES=$(ls "$PLUGIN_DATA_ROOT" 2>/dev/null)
|
for SERVICE in $(fn-services-list false); do
|
||||||
for SERVICE in $SERVICES; do
|
|
||||||
if ! in_links_file "$SERVICE" "$APP"; then
|
if ! in_links_file "$SERVICE" "$APP"; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local status="$(service_status "$SERVICE")"
|
status="$(service_status "$SERVICE")"
|
||||||
if [[ "$status" == "running" ]]; then
|
if [[ "$status" == "running" ]]; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -7,14 +7,14 @@ set -eo pipefail
|
|||||||
|
|
||||||
plugin-pre-start() {
|
plugin-pre-start() {
|
||||||
declare APP="$1"
|
declare APP="$1"
|
||||||
|
local status
|
||||||
|
|
||||||
local SERVICES=$(ls "$PLUGIN_DATA_ROOT" 2>/dev/null)
|
for SERVICE in $(fn-services-list false); do
|
||||||
for SERVICE in $SERVICES; do
|
|
||||||
if ! in_links_file "$SERVICE" "$APP"; then
|
if ! in_links_file "$SERVICE" "$APP"; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local status="$(service_status "$SERVICE")"
|
status="$(service_status "$SERVICE")"
|
||||||
if [[ "$status" == "running" ]]; then
|
if [[ "$status" == "running" ]]; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
pushd /var/lib/postgresql/data >/dev/null
|
pushd /var/lib/postgresql/data >/dev/null
|
||||||
openssl req -new -newkey rsa:4096 -x509 -nodes -out server.crt -keyout server.key -batch
|
openssl req -new -newkey rsa:4096 -x509 -days 365000 -nodes -out server.crt -keyout server.key -batch
|
||||||
chmod 600 server.key
|
chmod 600 server.key
|
||||||
sed -i "s/^#ssl = off/ssl = on/" postgresql.conf
|
sed -i "s/^#ssl = off/ssl = on/" postgresql.conf
|
||||||
sed -i "s/^#ssl_ciphers =.*/ssl_ciphers = 'AES256+EECDH:AES256+EDH'/" postgresql.conf
|
sed -i "s/^#ssl_ciphers =.*/ssl_ciphers = 'AES256+EECDH:AES256+EDH'/" postgresql.conf
|
||||||
|
|||||||
20
service-list
Executable file
20
service-list
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/config"
|
||||||
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/common-functions"
|
||||||
|
set -eo pipefail
|
||||||
|
[[ $DOKKU_TRACE ]] && set -x
|
||||||
|
|
||||||
|
plugin-service-list() {
|
||||||
|
declare desc="allows listing all services for use by other dokku plugins"
|
||||||
|
declare SERVICE_TYPE="$1"
|
||||||
|
|
||||||
|
if [[ -n "$SERVICE_TYPE" ]] && [[ "$SERVICE_TYPE" != "$PLUGIN_COMMAND_PREFIX" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
for service in $(fn-services-list false); do
|
||||||
|
echo "$PLUGIN_COMMAND_PREFIX:$service"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
plugin-service-list "$@"
|
||||||
@@ -27,6 +27,9 @@ service-clone-cmd() {
|
|||||||
[[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a valid name for the service"
|
[[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a valid name for the service"
|
||||||
[[ -z "$NEW_SERVICE" ]] && dokku_log_fail "Please specify a name for the new service"
|
[[ -z "$NEW_SERVICE" ]] && dokku_log_fail "Please specify a name for the new service"
|
||||||
verify_service_name "$SERVICE"
|
verify_service_name "$SERVICE"
|
||||||
|
if service_exists "$NEW_SERVICE"; then
|
||||||
|
dokku_log_fail "Invalid service name $NEW_SERVICE. Verify the service name is not already in use."
|
||||||
|
fi
|
||||||
|
|
||||||
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
local ID="$(cat "$SERVICE_ROOT/ID")"
|
local ID="$(cat "$SERVICE_ROOT/ID")"
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ service-destroy-cmd() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
dokku_log_info2_quiet "Deleting $SERVICE"
|
dokku_log_info2_quiet "Deleting $SERVICE"
|
||||||
plugn trigger service-action pre-delete "$SERVICE"
|
plugn trigger service-action pre-delete "$PLUGIN_COMMAND_PREFIX" "$SERVICE"
|
||||||
service_backup_unschedule "$SERVICE"
|
service_backup_unschedule "$SERVICE"
|
||||||
service_container_rm "$SERVICE"
|
service_container_rm "$SERVICE"
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ service-destroy-cmd() {
|
|||||||
docker run --rm -v "$SERVICE_HOST_ROOT/data:/data" -v "$SERVICE_HOST_ROOT/$PLUGIN_CONFIG_SUFFIX:/config" "$PLUGIN_BUSYBOX_IMAGE" chmod 777 -R /config /data
|
docker run --rm -v "$SERVICE_HOST_ROOT/data:/data" -v "$SERVICE_HOST_ROOT/$PLUGIN_CONFIG_SUFFIX:/config" "$PLUGIN_BUSYBOX_IMAGE" chmod 777 -R /config /data
|
||||||
rm -rf "$SERVICE_ROOT"
|
rm -rf "$SERVICE_ROOT"
|
||||||
|
|
||||||
plugn trigger service-action post-delete "$SERVICE"
|
plugn trigger service-action post-delete "$PLUGIN_COMMAND_PREFIX" "$SERVICE"
|
||||||
dokku_log_info2 "$PLUGIN_SERVICE container deleted: $SERVICE"
|
dokku_log_info2 "$PLUGIN_SERVICE container deleted: $SERVICE"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ service-enter-cmd() {
|
|||||||
[[ ${argv[0]} == "$cmd" ]] && shift 1
|
[[ ${argv[0]} == "$cmd" ]] && shift 1
|
||||||
declare SERVICE="$1"
|
declare SERVICE="$1"
|
||||||
|
|
||||||
|
verify_service_name "$SERVICE"
|
||||||
dokku_log_info1_quiet "Filesystem changes may not persist after container restarts"
|
dokku_log_info1_quiet "Filesystem changes may not persist after container restarts"
|
||||||
service_enter "$SERVICE" "${@:2}"
|
service_enter "$SERVICE" "${@:2}"
|
||||||
}
|
}
|
||||||
|
|||||||
22
subcommands/pause
Executable file
22
subcommands/pause
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config"
|
||||||
|
set -eo pipefail
|
||||||
|
[[ $DOKKU_TRACE ]] && set -x
|
||||||
|
source "$PLUGIN_BASE_PATH/common/functions"
|
||||||
|
source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions"
|
||||||
|
|
||||||
|
service-pause-cmd() {
|
||||||
|
#E pause the running container for the service
|
||||||
|
#E dokku $PLUGIN_COMMAND_PREFIX:pause lollipop
|
||||||
|
#A service, service to run command against
|
||||||
|
declare desc="pause a running $PLUGIN_SERVICE service"
|
||||||
|
local cmd="$PLUGIN_COMMAND_PREFIX:pause" argv=("$@")
|
||||||
|
[[ ${argv[0]} == "$cmd" ]] && shift 1
|
||||||
|
declare SERVICE="$1"
|
||||||
|
|
||||||
|
[[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a valid name for the service"
|
||||||
|
verify_service_name "$SERVICE"
|
||||||
|
service_pause "$SERVICE"
|
||||||
|
}
|
||||||
|
|
||||||
|
service-pause-cmd "$@"
|
||||||
@@ -16,7 +16,7 @@ service-restart-cmd() {
|
|||||||
|
|
||||||
[[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a valid name for the service"
|
[[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a valid name for the service"
|
||||||
verify_service_name "$SERVICE"
|
verify_service_name "$SERVICE"
|
||||||
service_stop "$SERVICE"
|
service_pause "$SERVICE"
|
||||||
service_start "$SERVICE"
|
service_start "$SERVICE"
|
||||||
dokku_log_info1 "Please call dokku ps:restart on all linked apps"
|
dokku_log_info1 "Please call dokku ps:restart on all linked apps"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ source "$PLUGIN_BASE_PATH/common/functions"
|
|||||||
source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions"
|
source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions"
|
||||||
|
|
||||||
service-stop-cmd() {
|
service-stop-cmd() {
|
||||||
#E stop the service and the running container
|
#E stop the service and removes the running container
|
||||||
#E dokku $PLUGIN_COMMAND_PREFIX:stop lollipop
|
#E dokku $PLUGIN_COMMAND_PREFIX:stop lollipop
|
||||||
#A service, service to run command against
|
#A service, service to run command against
|
||||||
declare desc="stop a running $PLUGIN_SERVICE service"
|
declare desc="stop a running $PLUGIN_SERVICE service"
|
||||||
@@ -16,7 +16,7 @@ service-stop-cmd() {
|
|||||||
|
|
||||||
[[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a valid name for the service"
|
[[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a valid name for the service"
|
||||||
verify_service_name "$SERVICE"
|
verify_service_name "$SERVICE"
|
||||||
service_stop "$SERVICE"
|
service_container_rm "$SERVICE"
|
||||||
}
|
}
|
||||||
|
|
||||||
service-stop-cmd "$@"
|
service-stop-cmd "$@"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ teardown() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "($PLUGIN_COMMAND_PREFIX:hook:pre-delete) removes app from links file when destroying app" {
|
@test "($PLUGIN_COMMAND_PREFIX:hook:pre-delete) removes app from links file when destroying app" {
|
||||||
[[ -n $(< "$PLUGIN_DATA_ROOT/l/LINKS") ]]
|
[[ -n $(<"$PLUGIN_DATA_ROOT/l/LINKS") ]]
|
||||||
dokku --force apps:destroy my-app
|
dokku --force apps:destroy my-app
|
||||||
[[ -z $(< "$PLUGIN_DATA_ROOT/l/LINKS") ]]
|
[[ -z $(<"$PLUGIN_DATA_ROOT/l/LINKS") ]]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ teardown() {
|
|||||||
@test "($PLUGIN_COMMAND_PREFIX:clone) error when new service already exists" {
|
@test "($PLUGIN_COMMAND_PREFIX:clone) error when new service already exists" {
|
||||||
dokku "$PLUGIN_COMMAND_PREFIX:create" new_service
|
dokku "$PLUGIN_COMMAND_PREFIX:create" new_service
|
||||||
run dokku "$PLUGIN_COMMAND_PREFIX:clone" l new_service
|
run dokku "$PLUGIN_COMMAND_PREFIX:clone" l new_service
|
||||||
assert_contains "${lines[*]}" "service new_service already exists"
|
assert_contains "${lines[*]}" "Invalid service name new_service"
|
||||||
assert_failure
|
assert_failure
|
||||||
|
|
||||||
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" new_service
|
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" new_service
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ teardown() {
|
|||||||
if [[ -n "$GITHUB_WORKFLOW" ]]; then
|
if [[ -n "$GITHUB_WORKFLOW" ]]; then
|
||||||
skip "No tty is available on Github Actions"
|
skip "No tty is available on Github Actions"
|
||||||
fi
|
fi
|
||||||
export SSH_TTY=`tty`
|
export SSH_TTY=$(tty)
|
||||||
run dokku "$PLUGIN_COMMAND_PREFIX:export" l
|
run dokku "$PLUGIN_COMMAND_PREFIX:export" l
|
||||||
echo "output: $output"
|
echo "output: $output"
|
||||||
echo "status: $status"
|
echo "status: $status"
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ teardown() {
|
|||||||
|
|
||||||
@test "($PLUGIN_COMMAND_PREFIX:import) success" {
|
@test "($PLUGIN_COMMAND_PREFIX:import) success" {
|
||||||
skip "The fake dump is hard to work with in tests"
|
skip "The fake dump is hard to work with in tests"
|
||||||
run dokku "$PLUGIN_COMMAND_PREFIX:import" l < "/tmp/fake.dump"
|
run dokku "$PLUGIN_COMMAND_PREFIX:import" l <"/tmp/fake.dump"
|
||||||
echo "output: $output"
|
echo "output: $output"
|
||||||
echo "status: $status"
|
echo "status: $status"
|
||||||
assert_success
|
assert_success
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ teardown() {
|
|||||||
dokku --force apps:destroy my-app
|
dokku --force apps:destroy my-app
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@test "($PLUGIN_COMMAND_PREFIX:link) error when there are no arguments" {
|
@test "($PLUGIN_COMMAND_PREFIX:link) error when there are no arguments" {
|
||||||
run dokku "$PLUGIN_COMMAND_PREFIX:link"
|
run dokku "$PLUGIN_COMMAND_PREFIX:link"
|
||||||
echo "output: $output"
|
echo "output: $output"
|
||||||
|
|||||||
25
tests/service_pause.bats
Executable file
25
tests/service_pause.bats
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
load test_helper
|
||||||
|
|
||||||
|
setup() {
|
||||||
|
dokku "$PLUGIN_COMMAND_PREFIX:create" l
|
||||||
|
}
|
||||||
|
|
||||||
|
teardown() {
|
||||||
|
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" l
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "($PLUGIN_COMMAND_PREFIX:pause) error when there are no arguments" {
|
||||||
|
run dokku "$PLUGIN_COMMAND_PREFIX:pause"
|
||||||
|
assert_contains "${lines[*]}" "Please specify a valid name for the service"
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "($PLUGIN_COMMAND_PREFIX:pause) error when service does not exist" {
|
||||||
|
run dokku "$PLUGIN_COMMAND_PREFIX:pause" not_existing_service
|
||||||
|
assert_contains "${lines[*]}" "service not_existing_service does not exist"
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "($PLUGIN_COMMAND_PREFIX:pause) success" {
|
||||||
|
run dokku "$PLUGIN_COMMAND_PREFIX:pause" l
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
@@ -23,4 +23,3 @@ teardown() {
|
|||||||
run dokku "$PLUGIN_COMMAND_PREFIX:restart" l
|
run dokku "$PLUGIN_COMMAND_PREFIX:restart" l
|
||||||
assert_success
|
assert_success
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,4 +23,3 @@ teardown() {
|
|||||||
run dokku "$PLUGIN_COMMAND_PREFIX:start" l
|
run dokku "$PLUGIN_COMMAND_PREFIX:start" l
|
||||||
assert_success
|
assert_success
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,4 +23,3 @@ teardown() {
|
|||||||
run dokku "$PLUGIN_COMMAND_PREFIX:stop" l
|
run dokku "$PLUGIN_COMMAND_PREFIX:stop" l
|
||||||
assert_success
|
assert_success
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,4 +25,3 @@ teardown() {
|
|||||||
[[ ! -f $PLUGIN_DATA_ROOT/PORT ]]
|
[[ ! -f $PLUGIN_DATA_ROOT/PORT ]]
|
||||||
assert_contains "${lines[*]}" "Service l unexposed"
|
assert_contains "${lines[*]}" "Service l unexposed"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user