diff --git a/Dockerfile b/Dockerfile index 7c71d52..910a102 100644 --- a/Dockerfile +++ b/Dockerfile @@ -320,6 +320,9 @@ ADD --chmod=0755 \ RUN mkdir -p /var/run/postgresql && chown postgres:postgres /var/run/postgresql COPY supervisord.conf ./etc/ +COPY start-postgres.sh ./supabase/postgres +RUN chmod 0755 /usr/local/bin/start-postgres.sh + #ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/start-postgres.sh b/start-postgres.sh new file mode 100644 index 0000000..dd33d0b --- /dev/null +++ b/start-postgres.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e + +# 设置默认环境变量(可通过 supervisord 的 environment 覆盖) +export PGDATA="${PGDATA:-/var/lib/postgresql/data}" +export POSTGRES_USER="${POSTGRES_USER:-supabase_admin}" +export POSTGRES_PASSWORD="${POSTGRES_PASSWORD:-postgres}" + +# 调用原始 docker-entrypoint.sh 脚本,传入 postgres 命令 +exec /usr/local/bin/docker-entrypoint.sh postgres -D "$PGDATA" diff --git a/supervisord.conf b/supervisord.conf index 88dfaff..4324cab 100644 --- a/supervisord.conf +++ b/supervisord.conf @@ -12,13 +12,16 @@ chmod=0700 serverurl=unix:///var/run/supervisor.sock [program:postgres] -command=/usr/local/bin/docker-entrypoint.sh postgres -D /var/lib/postgresql/data -user=postgres +command=/usr/local/bin/start-postgres.sh +user=root autorestart=true stdout_logfile=/var/log/postgres.out.log stderr_logfile=/var/log/postgres.err.log -environment=POSTGRES_USER="supabase_admin",POSTGRES_PASSWORD="postgres",POSTGRES_DB="postgres",PGDATA="/var/lib/postgresql/data" - +environment= + POSTGRES_USER="supabase_admin", + POSTGRES_PASSWORD="postgres", + POSTGRES_DB="postgres", + PGDATA="/var/lib/postgresql/data" # [program:kong] # command=/supabase/kong/docker-entrypoint.sh kong docker-start