From 16eced643c968e93bfdcad4182ed1e71c3a6e73d Mon Sep 17 00:00:00 2001 From: Matthew L McPeak Date: Wed, 17 Jun 2026 16:45:28 -0400 Subject: [PATCH] fix: Added postgres-sql --- Dockerfile | 12 ++++++++++-- entrypoint.sh | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 entrypoint.sh diff --git a/Dockerfile b/Dockerfile index aa57776..7fb3549 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,9 +18,17 @@ RUN cargo build --release # Stage 3: Final image FROM debian:bookworm-slim -RUN apt-get update && apt-get install -y ca-certificates libssl3 && rm -rf /var/lib/apt/lists/* +RUN apt-get update && apt-get install -y ca-certificates libssl3 postgresql-16 && rm -rf /var/lib/apt/lists/* + +ENV PATH="/usr/lib/postgresql/16/bin:$PATH" +ENV PGDATA=/var/lib/postgresql/data +ENV DATABASE_URL=postgres://mercury:mercury@127.0.0.1/mercury + WORKDIR /app COPY --from=api-builder /app/target/release/mercury . COPY --from=ui-builder /ui/dist ./ui/dist +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + EXPOSE 3000 -CMD ["./mercury"] +ENTRYPOINT ["/entrypoint.sh"] diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..5c9a391 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,20 @@ +#!/bin/sh +set -e + +PGDATA="${PGDATA:-/var/lib/postgresql/data}" +PGLOG="/var/log/postgresql/postgresql.log" + +mkdir -p "$PGDATA" /var/log/postgresql +chown postgres:postgres "$PGDATA" /var/log/postgresql + +if [ ! -f "$PGDATA/PG_VERSION" ]; then + su -s /bin/sh postgres -c "initdb -D $PGDATA" + su -s /bin/sh postgres -c "pg_ctl start -D $PGDATA -w -l $PGLOG" + su -s /bin/sh postgres -c "psql postgres -c \"CREATE USER mercury WITH PASSWORD 'mercury';\"" + su -s /bin/sh postgres -c "psql postgres -c \"CREATE DATABASE mercury OWNER mercury;\"" + su -s /bin/sh postgres -c "pg_ctl stop -D $PGDATA -w" +fi + +su -s /bin/sh postgres -c "pg_ctl start -D $PGDATA -w -l $PGLOG" + +exec /app/mercury