Compare commits

...

17 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
e0e32d268e Release 1.19.3 2022-02-03 10:31:12 -05:00
Jose Diaz-Gonzalez
c22a2c5bca fix: always chown the image files 2022-02-03 10:30:27 -05:00
Jose Diaz-Gonzalez
760c21b044 docs: clarify unit for container memory limit 2022-01-22 04:31:53 -05:00
Jose Diaz-Gonzalez
1f0cdba967 Release 1.19.2 2022-01-22 04:24:34 -05:00
Jose Diaz-Gonzalez
0d4a6bc320 fix: ensure service config files are owned by the dokku system user
Refs dokku/dokku-postgres#245
2022-01-22 04:23:53 -05:00
Jose Diaz-Gonzalez
0209f16188 Release 1.19.1 2022-01-22 04:12:00 -05:00
Jose Diaz-Gonzalez
e0c8375c3a Release 1.19.0 2022-01-22 04:08:47 -05:00
Jose Diaz-Gonzalez
3781dec5f7 Merge pull request #241 from dokku/dependabot/docker/postgres-14.1
chore(deps): bump postgres from 13.4 to 14.1
2022-01-22 04:08:36 -05:00
Jose Diaz-Gonzalez
84101e17e9 Release 1.18.0 2021-12-25 16:50:08 -05:00
Jose Diaz-Gonzalez
a68d2e71d0 feat: add ability to skip restarts when linking datastores
This allows multiple datastores to be linked at a given time, thus decreasing provisioning times.
2021-12-25 16:44:16 -05:00
dependabot[bot]
d99ae93279 chore(deps): bump postgres from 13.4 to 14.1
Bumps postgres from 13.4 to 14.1.

---
updated-dependencies:
- dependency-name: postgres
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-15 02:08:50 +00:00
Jose Diaz-Gonzalez
af01981e52 Release 1.17.0 2021-10-26 22:28:00 -04:00
Jose Diaz-Gonzalez
1c7d121a07 feat: allow tailing a specific number of log lines 2021-10-26 22:27:14 -04:00
Jose Diaz-Gonzalez
2f33b6deb3 Release 1.16.1 2021-10-24 05:17:45 -04:00
Jose Diaz-Gonzalez
78d74dfc3c fix: silence config-options error when there are no config-options set 2021-10-24 05:08:28 -04:00
Jose Diaz-Gonzalez
5ad84c4efe Release 1.16.0 2021-10-23 19:34:04 -04:00
Jose Diaz-Gonzalez
46a940fd28 feat: allow quiet header for :info command 2021-10-23 19:33:18 -04:00
9 changed files with 44 additions and 22 deletions

View File

@@ -1 +1 @@
FROM postgres:13.4 FROM postgres:14.1

View File

@@ -1,6 +1,6 @@
# dokku postgres [![Build Status](https://img.shields.io/github/workflow/status/dokku/dokku-postgres/CI/master?style=flat-square "Build Status")](https://github.com/dokku/dokku-postgres/actions/workflows/ci.yml?query=branch%3Amaster) [![IRC Network](https://img.shields.io/badge/irc-libera-blue.svg?style=flat-square "IRC Libera")](https://webchat.libera.chat/?channels=dokku) # dokku postgres [![Build Status](https://img.shields.io/github/workflow/status/dokku/dokku-postgres/CI/master?style=flat-square "Build Status")](https://github.com/dokku/dokku-postgres/actions/workflows/ci.yml?query=branch%3Amaster) [![IRC Network](https://img.shields.io/badge/irc-libera-blue.svg?style=flat-square "IRC Libera")](https://webchat.libera.chat/?channels=dokku)
Official postgres plugin for dokku. Currently defaults to installing [postgres 13.4](https://hub.docker.com/_/postgres/). Official postgres plugin for dokku. Currently defaults to installing [postgres 14.1](https://hub.docker.com/_/postgres/).
## Requirements ## Requirements
@@ -40,7 +40,7 @@ postgres:link <service> <app> [--link-flags...] # link the postgres service t
postgres:linked <service> <app> # check if the postgres service is linked to an app postgres:linked <service> <app> # check if the postgres service is linked to an app
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] # 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: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
@@ -69,7 +69,7 @@ flags:
- `-C|--custom-env "USER=alpha;HOST=beta"`: semi-colon delimited environment variables to start the service with - `-C|--custom-env "USER=alpha;HOST=beta"`: semi-colon delimited environment variables to start the service with
- `-i|--image IMAGE`: the image name to start the service with - `-i|--image IMAGE`: the image name to start the service with
- `-I|--image-version IMAGE_VERSION`: the image version to start the service with - `-I|--image-version IMAGE_VERSION`: the image version to start the service with
- `-m|--memory MEMORY`: container memory limit (default: unlimited) - `-m|--memory MEMORY`: container memory limit in megabytes (default: unlimited)
- `-p|--password PASSWORD`: override the user-level service password - `-p|--password PASSWORD`: override the user-level service password
- `-r|--root-password PASSWORD`: override the root-level service password - `-r|--root-password PASSWORD`: override the root-level service password
- `-s|--shm-size SHM_SIZE`: override shared memory size for postgres docker container - `-s|--shm-size SHM_SIZE`: override shared memory size for postgres docker container
@@ -159,12 +159,12 @@ dokku postgres:list
```shell ```shell
# usage # usage
dokku postgres:logs <service> [-t|--tail] dokku postgres:logs <service> [-t|--tail] <tail-num-optional>
``` ```
flags: flags:
- `-t|--tail`: do not stop when end of the logs are reached and wait for additional output - `-t|--tail [<tail-num>]`: do not stop when end of the logs are reached and wait for additional output
You can tail logs for a particular service: You can tail logs for a particular service:
@@ -178,6 +178,12 @@ By default, logs will not be tailed, but you can do this with the --tail flag:
dokku postgres:logs lollipop --tail dokku postgres:logs lollipop --tail
``` ```
The default tail setting is to show all logs, but an initial count can also be specified:
```shell
dokku postgres:logs lollipop --tail 5
```
### link the postgres service to the app ### link the postgres service to the app
```shell ```shell
@@ -472,7 +478,7 @@ flags:
- `-C|--custom-env "USER=alpha;HOST=beta"`: semi-colon delimited environment variables to start the service with - `-C|--custom-env "USER=alpha;HOST=beta"`: semi-colon delimited environment variables to start the service with
- `-i|--image IMAGE`: the image name to start the service with - `-i|--image IMAGE`: the image name to start the service with
- `-I|--image-version IMAGE_VERSION`: the image version to start the service with - `-I|--image-version IMAGE_VERSION`: the image version to start the service with
- `-m|--memory MEMORY`: container memory limit (default: unlimited) - `-m|--memory MEMORY`: container memory limit in megabytes (default: unlimited)
- `-p|--password PASSWORD`: override the user-level service password - `-p|--password PASSWORD`: override the user-level service password
- `-r|--root-password PASSWORD`: override the root-level service password - `-r|--root-password PASSWORD`: override the root-level service password
- `-s|--shm-size SHM_SIZE`: override shared memory size for postgres docker container - `-s|--shm-size SHM_SIZE`: override shared memory size for postgres docker container

View File

@@ -451,7 +451,7 @@ service_info() {
local flag_map=( local flag_map=(
"--config-dir: ${SERVICE_ROOT}/${PLUGIN_CONFIG_SUFFIX}" "--config-dir: ${SERVICE_ROOT}/${PLUGIN_CONFIG_SUFFIX}"
"--config-options: $(cat "$SERVICE_ROOT/CONFIG_OPTIONS")" "--config-options: $(cat "$SERVICE_ROOT/CONFIG_OPTIONS" 2>/dev/null || true)"
"--data-dir: ${SERVICE_ROOT}/data" "--data-dir: ${SERVICE_ROOT}/data"
"--dsn: ${SERVICE_URL}" "--dsn: ${SERVICE_URL}"
"--exposed-ports: $(service_exposed_ports "$SERVICE")" "--exposed-ports: $(service_exposed_ports "$SERVICE")"
@@ -463,7 +463,7 @@ service_info() {
"--version: $(service_version "$SERVICE")" "--version: $(service_version "$SERVICE")"
) )
if [[ -z "$INFO_FLAG" ]]; then if [[ -z "$INFO_FLAG" ]]; then
dokku_log_info2 "$SERVICE $PLUGIN_COMMAND_PREFIX service information" dokku_log_info2_quiet "$SERVICE $PLUGIN_COMMAND_PREFIX service information"
for flag in "${flag_map[@]}"; do for flag in "${flag_map[@]}"; do
key="$(echo "${flag#--}" | cut -f1 -d' ' | tr - ' ')" key="$(echo "${flag#--}" | cut -f1 -d' ' | tr - ' ')"
dokku_log_verbose "$(printf "%-20s %-25s" "${key^}" "${flag#*: }")" dokku_log_verbose "$(printf "%-20s %-25s" "${key^}" "${flag#*: }")"
@@ -533,7 +533,11 @@ service_link() {
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 "$SERVICE" "$APP"
config_set "$APP" "${ALIAS}_URL=$SERVICE_URL" if [[ "$DOKKU_GLOBAL_FLAGS" == *"--no-restart"* ]]; then
config_set --no-restart "$APP" "${ALIAS}_URL=$SERVICE_URL"
else
config_set "$APP" "${ALIAS}_URL=$SERVICE_URL"
fi
plugn trigger service-action post-link-complete "$SERVICE" "$APP" plugn trigger service-action post-link-complete "$SERVICE" "$APP"
} }
@@ -578,14 +582,14 @@ service_list() {
service_logs() { service_logs() {
declare desc="display logs for a service" declare desc="display logs for a service"
declare SERVICE="$1" TAIL_FLAG="$2" declare SERVICE="$1" TAIL_FLAG="$2" TAIL_COUNT="$3"
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")
local RE_INTEGER='^[0-9]+$' local RE_INTEGER='^[0-9]+$'
DOKKU_LOGS_ARGS="--tail 100" DOKKU_LOGS_ARGS="--tail $TAIL_COUNT"
if [[ "$TAIL_FLAG" == "-t" ]] || [[ "$TAIL_FLAG" == "--tail" ]]; then if [[ "$TAIL_FLAG" == "-t" ]] || [[ "$TAIL_FLAG" == "--tail" ]]; then
DOKKU_LOGS_ARGS="--follow" DOKKU_LOGS_ARGS+=" --follow"
fi fi
docker inspect "$ID" &>/dev/null || dokku_log_fail "Service container does not exist" docker inspect "$ID" &>/dev/null || dokku_log_fail "Service container does not exist"
@@ -857,7 +861,11 @@ service_unlink() {
[[ -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 "$SERVICE" "$APP"
config_unset "$APP" "${LINK[@]}" if [[ "$DOKKU_GLOBAL_FLAGS" == *"--no-restart"* ]]; then
config_unset --no-restart "$APP" "${LINK[@]}"
else
config_unset "$APP" "${LINK[@]}"
fi
plugn trigger service-action post-unlink-complete "$SERVICE" "$APP" plugn trigger service-action post-unlink-complete "$SERVICE" "$APP"
} }

View File

@@ -202,6 +202,9 @@ fn-help-subcommand-args() {
elif [[ "$arg" == *_LIST ]]; then elif [[ "$arg" == *_LIST ]]; then
arg=${arg%_*} arg=${arg%_*}
args+=" <${arg//_/-}...>" args+=" <${arg//_/-}...>"
elif [[ "$arg" == *_OPTIONAL ]]; then
argName="${arg/_OPTIONAL/}"
args+=" [<${argName//_/-}>]"
else else
args+=" <${arg//_/-}>" args+=" <${arg//_/-}>"
fi fi

View File

@@ -24,10 +24,10 @@ plugin-install() {
pull-docker-image "$PLUGIN_WAIT_IMAGE" pull-docker-image "$PLUGIN_WAIT_IMAGE"
mkdir -p "$PLUGIN_DATA_ROOT" || echo "Failed to create $PLUGIN_SERVICE data directory" mkdir -p "$PLUGIN_DATA_ROOT" || echo "Failed to create $PLUGIN_SERVICE data directory"
chown dokku:dokku "$PLUGIN_DATA_ROOT" chown "${DOKKU_SYSTEM_USER}:${DOKKU_SYSTEM_GROUP}" "$PLUGIN_DATA_ROOT"
mkdir -p "$PLUGIN_CONFIG_ROOT" || echo "Failed to create $PLUGIN_SERVICE config directory" mkdir -p "$PLUGIN_CONFIG_ROOT" || echo "Failed to create $PLUGIN_SERVICE config directory"
chown dokku:dokku "$PLUGIN_CONFIG_ROOT" chown "${DOKKU_SYSTEM_USER}:${DOKKU_SYSTEM_GROUP}" "$PLUGIN_CONFIG_ROOT"
rm -f "/etc/sudoers.d/dokku-${PLUGIN_COMMAND_PREFIX}*" rm -f "/etc/sudoers.d/dokku-${PLUGIN_COMMAND_PREFIX}*"
_SUDOERS_FILE="/etc/sudoers.d/dokku-${PLUGIN_COMMAND_PREFIX}" _SUDOERS_FILE="/etc/sudoers.d/dokku-${PLUGIN_COMMAND_PREFIX}"
@@ -56,8 +56,11 @@ EOL
fi fi
fi fi
chown "${DOKKU_SYSTEM_USER}:${DOKKU_SYSTEM_GROUP}" "$SERVICE_ROOT/IMAGE" "$SERVICE_ROOT/IMAGE_VERSION"
if [[ -f "$SERVICE_ROOT/${PLUGIN_VARIABLE}_CONFIG_OPTIONS" ]]; then if [[ -f "$SERVICE_ROOT/${PLUGIN_VARIABLE}_CONFIG_OPTIONS" ]]; then
mv "$SERVICE_ROOT/${PLUGIN_VARIABLE}_CONFIG_OPTIONS" "$SERVICE_ROOT/CONFIG_OPTIONS" mv "$SERVICE_ROOT/${PLUGIN_VARIABLE}_CONFIG_OPTIONS" "$SERVICE_ROOT/CONFIG_OPTIONS"
chown "${DOKKU_SYSTEM_USER}:${DOKKU_SYSTEM_GROUP}" "$SERVICE_ROOT/CONFIG_OPTIONS"
fi fi
done done
} }

View File

@@ -1,4 +1,4 @@
[plugin] [plugin]
description = "dokku postgres service plugin" description = "dokku postgres service plugin"
version = "1.15.0" version = "1.19.3"
[plugin.config] [plugin.config]

View File

@@ -14,7 +14,7 @@ service-clone-cmd() {
#F -C|--custom-env "USER=alpha;HOST=beta", semi-colon delimited environment variables to start the service with #F -C|--custom-env "USER=alpha;HOST=beta", semi-colon delimited environment variables to start the service with
#F -i|--image IMAGE, the image name to start the service with #F -i|--image IMAGE, the image name to start the service with
#F -I|--image-version IMAGE_VERSION, the image version to start the service with #F -I|--image-version IMAGE_VERSION, the image version to start the service with
#F -m|--memory MEMORY, container memory limit (default: unlimited) #F -m|--memory MEMORY, container memory limit in megabytes (default: unlimited)
#F -p|--password PASSWORD, override the user-level service password #F -p|--password PASSWORD, override the user-level service password
#F -r|--root-password PASSWORD, override the root-level service password #F -r|--root-password PASSWORD, override the root-level service password
#F -s|--shm-size SHM_SIZE, override shared memory size for $PLUGIN_COMMAND_PREFIX docker container #F -s|--shm-size SHM_SIZE, override shared memory size for $PLUGIN_COMMAND_PREFIX docker container

View File

@@ -22,7 +22,7 @@ service-create-cmd() {
#F -C|--custom-env "USER=alpha;HOST=beta", semi-colon delimited environment variables to start the service with #F -C|--custom-env "USER=alpha;HOST=beta", semi-colon delimited environment variables to start the service with
#F -i|--image IMAGE, the image name to start the service with #F -i|--image IMAGE, the image name to start the service with
#F -I|--image-version IMAGE_VERSION, the image version to start the service with #F -I|--image-version IMAGE_VERSION, the image version to start the service with
#F -m|--memory MEMORY, container memory limit (default: unlimited) #F -m|--memory MEMORY, container memory limit in megabytes (default: unlimited)
#F -p|--password PASSWORD, override the user-level service password #F -p|--password PASSWORD, override the user-level service password
#F -r|--root-password PASSWORD, override the root-level service password #F -r|--root-password PASSWORD, override the root-level service password
#F -s|--shm-size SHM_SIZE, override shared memory size for $PLUGIN_COMMAND_PREFIX docker container #F -s|--shm-size SHM_SIZE, override shared memory size for $PLUGIN_COMMAND_PREFIX docker container

View File

@@ -10,16 +10,18 @@ service-logs-cmd() {
#E dokku $PLUGIN_COMMAND_PREFIX:logs lollipop #E dokku $PLUGIN_COMMAND_PREFIX:logs lollipop
#E by default, logs will not be tailed, but you can do this with the --tail flag: #E by default, logs will not be tailed, but you can do this with the --tail flag:
#E dokku $PLUGIN_COMMAND_PREFIX:logs lollipop --tail #E dokku $PLUGIN_COMMAND_PREFIX:logs lollipop --tail
#E the default tail setting is to show all logs, but an initial count can also be specified
#E dokku $PLUGIN_COMMAND_PREFIX:logs lollipop --tail 5
#A service, service to run command against #A service, service to run command against
#F -t|--tail, do not stop when end of the logs are reached and wait for additional output #F -t|--tail [<tail-num>], do not stop when end of the logs are reached and wait for additional output
declare desc="print the most recent log(s) for this service" declare desc="print the most recent log(s) for this service"
local cmd="$PLUGIN_COMMAND_PREFIX:logs" argv=("$@") local cmd="$PLUGIN_COMMAND_PREFIX:logs" argv=("$@")
[[ ${argv[0]} == "$cmd" ]] && shift 1 [[ ${argv[0]} == "$cmd" ]] && shift 1
declare SERVICE="$1" TAIL_FLAG="$2" declare SERVICE="$1" TAIL_FLAG="$2" TAIL_NUM_OPTIONAL="${3:-all}"
[[ -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_logs "$SERVICE" "$TAIL_FLAG" service_logs "$SERVICE" "$TAIL_FLAG" "$TAIL_NUM_OPTIONAL"
} }
service-logs-cmd "$@" service-logs-cmd "$@"