Keep PG data in image, add DATABASE_URL, add uv symlink, simplify entrypoint
Docker / build-and-push (push) Successful in 1m54s

This commit is contained in:
Steffen
2026-07-05 07:30:53 +00:00
parent b0fd104512
commit 6ea5cdeedb
2 changed files with 15 additions and 14 deletions
+6 -4
View File
@@ -24,21 +24,23 @@ RUN curl -LsSf https://astral.sh/uv/install.sh | sh && \
. "$HOME/.local/bin/env" && \ . "$HOME/.local/bin/env" && \
uv --version uv --version
RUN ln -sf /root/.local/bin/uv /usr/local/bin/uv
# ── pnpm ── # ── pnpm ──
RUN npm install -g pnpm RUN npm install -g pnpm
# ── PostgreSQL 16 + pgvector ── # ── PostgreSQL 16 + pgvector ──
RUN apk add --no-cache postgresql postgresql-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 && \ RUN mkdir -p /run/postgresql && chown postgres:postgres /run/postgresql && \
su - postgres -c "initdb -D /var/lib/postgresql/data" && \ su - postgres -c "initdb -D /var/lib/postgresql/data" && \
su - postgres -c "pg_ctl -D /var/lib/postgresql/data start" && \ 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 USER remynd WITH PASSWORD 'remynd';\"" && \
su - postgres -c "psql -c \"CREATE DATABASE remynd_dev OWNER 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 "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 ENV DATABASE_URL="postgresql://remynd:remynd@localhost:5432/remynd_dev"
# ── Ensure uv on PATH for all shells ── # ── Ensure uv on PATH for all shells ──
RUN echo '. "$HOME/.local/bin/env"' > /root/.profile RUN echo '. "$HOME/.local/bin/env"' > /root/.profile
+7 -8
View File
@@ -4,16 +4,15 @@ set -e
PGDATA="/var/lib/postgresql/data" PGDATA="/var/lib/postgresql/data"
PGLOG="/var/log/postgresql.log" PGLOG="/var/log/postgresql.log"
if [ ! -d "$PGDATA" ] || [ -z "$(ls -A "$PGDATA" 2>/dev/null)" ]; then
mkdir -p /run/postgresql mkdir -p /run/postgresql
chown postgres:postgres /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
su - postgres -c "pg_ctl -D $PGDATA -l $PGLOG start" 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 "$@" exec "$@"