Skip to content

Commit 0ed74dc

Browse files
committed
fix: harden PostgreSQL first-run initialization
Bump the packaging revision to mldm2 and move partial PGDATA directories aside before initdb so interrupted first starts do not leave an unusable cluster.
1 parent ad5c850 commit 0ed74dc

3 files changed

Lines changed: 12 additions & 4 deletions

File tree

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ FROM ghcr.io/linuxserver/baseimage-alpine:${LSIO_BASE_VERSION}
66
ARG LSIO_BASE_VERSION
77
ARG BUILD_DATE
88
ARG APP_VERSION=16.14
9-
ARG IMAGE_REVISION=mldm1
10-
ARG VERSION=16.14-mldm1
9+
ARG IMAGE_REVISION=mldm2
10+
ARG VERSION=16.14-mldm2
1111
ARG VCS_REF
1212

1313
LABEL build_version="Mildman1848 PostgreSQL version:- ${VERSION} Upstream:- ${APP_VERSION} Revision:- ${IMAGE_REVISION} Build-date:- ${BUILD_DATE}" \

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ SHELL := /usr/bin/env bash
33

44
IMAGE_NAME ?= postgresql
55
APP_VERSION ?= 16.14
6-
IMAGE_REVISION ?= mldm1
6+
IMAGE_REVISION ?= mldm2
77
VERSION ?= $(APP_VERSION)-$(IMAGE_REVISION)
88
IMAGE_TAG ?= $(VERSION)
99
REGISTRY ?= ghcr.io/mildman1848

root/usr/local/bin/start-app

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,18 @@ sql_escape() {
1212
printf "%s" "${value//\'/\'\'}"
1313
}
1414

15-
mkdir -p "$PGDATA" /run/postgresql
15+
mkdir -p "$(dirname "$PGDATA")" /run/postgresql
1616
chown -R abc:abc /config /run/postgresql
1717

1818
if [[ ! -s "$PGDATA/PG_VERSION" ]]; then
19+
if [[ -d "$PGDATA" ]] && find "$PGDATA" -mindepth 1 -maxdepth 1 | grep -q .; then
20+
failed_dir="${PGDATA}.failed-init.$(date -u +%Y%m%d%H%M%S)"
21+
echo "Warning: $PGDATA exists but has no PG_VERSION; moving partial init to $failed_dir" >&2
22+
mv "$PGDATA" "$failed_dir"
23+
fi
24+
25+
mkdir -p "$PGDATA"
26+
chown -R abc:abc "$PGDATA"
1927
echo "Initializing PostgreSQL data directory at $PGDATA"
2028
s6-setuidgid abc initdb -D "$PGDATA" --username="$POSTGRES_USER"
2129

0 commit comments

Comments
 (0)