From 6ea5cdeedbf9085532e3e808c90d8d8cca568679 Mon Sep 17 00:00:00 2001 From: Steffen Date: Sun, 5 Jul 2026 07:30:53 +0000 Subject: [PATCH] Keep PG data in image, add DATABASE_URL, add uv symlink, simplify entrypoint --- Dockerfile | 10 ++++++---- entrypoint.sh | 19 +++++++++---------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9ed20b2..cd80033 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,21 +24,23 @@ RUN curl -LsSf https://astral.sh/uv/install.sh | sh && \ . "$HOME/.local/bin/env" && \ uv --version +RUN ln -sf /root/.local/bin/uv /usr/local/bin/uv + # ── pnpm ── RUN npm install -g pnpm # ── PostgreSQL 16 + pgvector ── RUN apk add --no-cache postgresql postgresql-pgvector -# ── Init PostgreSQL with dev user/db/ext, then remove data dir to save ~40MB ── +# ── Init PostgreSQL with dev user/db/ext, persist data in image ── RUN mkdir -p /run/postgresql && chown postgres:postgres /run/postgresql && \ su - postgres -c "initdb -D /var/lib/postgresql/data" && \ su - postgres -c "pg_ctl -D /var/lib/postgresql/data start" && \ su - postgres -c "psql -c \"CREATE USER remynd WITH PASSWORD 'remynd';\"" && \ su - postgres -c "psql -c \"CREATE DATABASE remynd_dev OWNER remynd;\"" && \ - su - postgres -c "psql -d remynd_dev -c 'CREATE EXTENSION IF NOT EXISTS vector;'" && \ - su - postgres -c "pg_ctl -D /var/lib/postgresql/data stop" && \ - rm -rf /var/lib/postgresql/data + su - postgres -c "psql -d remynd_dev -c 'CREATE EXTENSION IF NOT EXISTS vector;'" + +ENV DATABASE_URL="postgresql://remynd:remynd@localhost:5432/remynd_dev" # ── Ensure uv on PATH for all shells ── RUN echo '. "$HOME/.local/bin/env"' > /root/.profile diff --git a/entrypoint.sh b/entrypoint.sh index 9b7b6c4..db58a29 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -4,16 +4,15 @@ set -e PGDATA="/var/lib/postgresql/data" PGLOG="/var/log/postgresql.log" -if [ ! -d "$PGDATA" ] || [ -z "$(ls -A "$PGDATA" 2>/dev/null)" ]; then - mkdir -p /run/postgresql - chown postgres:postgres /run/postgresql - su - postgres -c "initdb -D $PGDATA" - su - postgres -c "pg_ctl -D $PGDATA -l $PGLOG start" - su - postgres -c "psql -c \"CREATE USER remynd WITH PASSWORD 'remynd';\"" || true - su - postgres -c "psql -c \"CREATE DATABASE remynd_dev OWNER remynd;\"" || true - su - postgres -c "psql -d remynd_dev -c 'CREATE EXTENSION IF NOT EXISTS vector;'" || true - su - postgres -c "pg_ctl -D $PGDATA stop" -fi +mkdir -p /run/postgresql +chown postgres:postgres /run/postgresql su - postgres -c "pg_ctl -D $PGDATA -l $PGLOG start" + +su - postgres -c "pg_isready -q" || \ + for i in $(seq 1 10); do + su - postgres -c "pg_isready -q" && break + sleep 0.5 + done + exec "$@"