GitHub Actions中Supabase Postgres容器初始化失败:supabase_admin身份验证错误
解决GitHub Actions中Supabase Postgres容器初始化失败问题
问题背景
在GitHub Actions工作流中配置Supabase Postgres容器用于Django测试时,容器启动失败,报错提示supabase_admin角色不存在且认证失败。
错误信息
/usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/migrate.sh [local] 2024-10-31 01:36:07.736 UTC [75] supabase_admin@test_db FATAL: password authentication failed for user "supabase_admin" [local] 2024-10-31 01:36:07.736 UTC [75] supabase_admin@test_db DETAIL: Role "supabase_admin" does not exist. Connection matched pg_hba.conf line 82: "local all supabase_admin scram-sha-256" Error: Failed to initialize container supabase/postgres:15.6.1.133 Error: One or more containers failed to start.
当前配置
services: postgres: image: supabase/postgres:15.6.1.133 env: POSTGRES_USER: postgres POSTGRES_PASSWORD: **** POSTGRES_DB: test_db DATABASE_URL: postgres://postgres:postgres@localhost:5432/test_db ports: - 5432:5432 options: >- --health-cmd="pg_isready -U postgres" --health-interval=10s --health-timeout=5s --health-retries=5
解决方案
Supabase官方的Postgres镜像依赖默认的supabase_admin用户执行初始化脚本,你当前设置的POSTGRES_USER: postgres覆盖了默认用户,导致初始化时找不到supabase_admin角色,进而触发认证失败。
修改配置要点:
- 将
POSTGRES_USER改为supabase_admin - 同步更新
DATABASE_URL中的用户信息 - 调整健康检查命令的用户参数为
supabase_admin
修正后的完整配置
services: postgres: image: supabase/postgres:15.6.1.133 env: POSTGRES_USER: supabase_admin POSTGRES_PASSWORD: **** POSTGRES_DB: test_db DATABASE_URL: postgres://supabase_admin:****@localhost:5432/test_db ports: - 5432:5432 options: >- --health-cmd="pg_isready -U supabase_admin" --health-interval=10s --health-timeout=5s --health-retries=5
验证修改后重新运行工作流,容器即可正常初始化启动。
内容的提问来源于stack exchange,提问作者FYP
相关产品推荐
相关产品推荐

