@@ -78,6 +78,14 @@ service_create_container() {
7878
7979 rm -f "$SERVICE_ROOT/ID"
8080 declare -a DOCKER_ARGS
81+
82+ # Determine correct data directory for PostgreSQL version
83+ local DATA_DIR="/var/lib/postgresql/data"
84+ local PG_MAJOR="${PLUGIN_IMAGE_VERSION%%[^0-9]*}"
85+ if [[ -n "$PG_MAJOR" && "$PG_MAJOR" -ge 18 ]]; then
86+ DATA_DIR="/var/lib/postgresql"
87+ fi
88+
8189 DOCKER_ARGS=()
8290 DOCKER_ARGS+=("--cidfile=$SERVICE_ROOT/ID")
8391 DOCKER_ARGS+=("--env-file=$SERVICE_ROOT/ENV")
@@ -87,7 +95,7 @@ service_create_container() {
8795 DOCKER_ARGS+=("--label=dokku=service")
8896 DOCKER_ARGS+=("--name=$SERVICE_NAME")
8997 DOCKER_ARGS+=("--restart=always")
90- DOCKER_ARGS+=("--volume=$SERVICE_HOST_ROOT/data:/var/lib/postgresql/data ")
98+ DOCKER_ARGS+=("--volume=$SERVICE_HOST_ROOT/data:$DATA_DIR ")
9199
92100 declare -a LINK_CONTAINER_DOCKER_ARGS
93101 LINK_CONTAINER_DOCKER_ARGS=()
@@ -150,7 +158,7 @@ service_create_container() {
150158 dokku_log_verbose_quiet "Securing connection to database"
151159 service_pause "$SERVICE" >/dev/null
152160 "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/scripts/create_ssl_certs.sh" "$SERVICE_ROOT" &>/dev/null
153- "$DOCKER_BIN" container run --rm -i -v "$SERVICE_HOST_ROOT/data:/var/lib/postgresql/data " -v "$SERVICE_HOST_ROOT/certs:/var/lib/postgresql/certs" "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" bash -s <"$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/scripts/enable_ssl.sh" &>/dev/null
161+ "$DOCKER_BIN" container run --rm -i -v "$SERVICE_HOST_ROOT/data:$DATA_DIR " -v "$SERVICE_HOST_ROOT/certs:/var/lib/postgresql/certs" "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" bash -s <"$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/scripts/enable_ssl.sh" &>/dev/null
154162 rm -rf "$SERVICE_HOST_ROOT/certs"
155163
156164 suppress_output "$DOCKER_BIN" container start "$(cat "$SERVICE_ROOT/ID")"
0 commit comments