Docker 部署 Supabase并连接

1. Docker 部署 Supabase

1.1 获取 Supabase 代码

参考:https://supabase.com/docs/guides/self-hosting/docker

text 复制代码
# 使用 git sparse checkout 获取代码
git clone --filter=blob:none --no-checkout https://github.com/supabase/supabase
cd supabase
git sparse-checkout set --cone docker && git checkout master
cd ..
​
# 创建新的 supabase 项目目录
mkdir supabase-project
​
# 目录结构应该如下:
# .
# ├── supabase
# └── supabase-project
​
# 复制 compose 文件到项目目录
cp -rf supabase/docker/* supabase-project
​
# 复制环境变量模板
cp supabase/docker/.env.example supabase-project/.env
​
# 切换到项目目录
cd supabase-project

1.2 配置环境变量

编辑 supabase-project/.env 文件:

text 复制代码
# 编辑环境变量文件
vi .env

重要配置项:

text 复制代码
############
# Secrets - 生产环境必须修改这些值
############
POSTGRES_PASSWORD=pgsqlGNOAnboioiugiugiugviugiug
JWT_SECRET=your-super-secret-jwt-token-with-at-least-32-characters-long
ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE
SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q
DASHBOARD_USERNAME=supabase
DASHBOARD_PASSWORD=supabaseAF98h19hto1hoihpojapjfa
​
############
# Database - PostgreSQL 配置
############
POSTGRES_HOST=db
POSTGRES_DB=postgres
POSTGRES_PORT=15432  # 自定义端口,避免冲突
​
############
# API Proxy - Kong 反向代理配置
############
KONG_HTTP_PORT=18000   # Dashboard 访问端口
KONG_HTTPS_PORT=18443
​
############
# Studio - Dashboard 配置
############
SUPABASE_PUBLIC_URL=http://localhost:18000  # 根据实际 IP 修改
​
############
# Functions - Edge Functions 配置
############
FUNCTIONS_VERIFY_JWT=false

1.3 启动服务

text 复制代码
# 拉取最新镜像
docker compose pull
​
# 启动服务(后台模式)
docker compose up -d
​
# 检查服务状态
docker compose ps
​
# 查看服务日志
docker compose logs -f

1.4 解决常见启动问题

端口冲突问题

如果遇到端口占用错误:

text 复制代码
Error: bind: address already in use

修改 docker-compose.yml 中的端口配置:

text 复制代码
analytics:
  ports:
    - 14000:4000  # 修改为其他可用端口

CDN 访问问题

如果 Edge Functions 报错无法下载依赖,修改函数文件:

text 复制代码
// 将 deno.land 替换为 cdn.jsdelivr.net
import { serve } from 'https://cdn.jsdelivr.net/gh/denoland/deno_std@0.131.0/http/server.ts'
import * as jose from 'https://cdn.jsdelivr.net/npm/jose@4.14.4/+esm'

1.5 验证部署

text 复制代码
# 测试 hello function
curl http://127.0.0.1:18000/functions/v1/hello
​
# 访问 Dashboard
# 浏览器打开:http://127.0.0.1:18000

1.6 服务地址

  • Supabase Dashboard : http://127.0.0.1:18000 或 http://172.16.9.14:18000

  • Edge Functions 端点 : http://127.0.0.1:18000/functions/v1/

  • PostgreSQL 端口 : 15432

1.7 服务端口映射

服务 内部端口 外部端口 说明
Kong (API Gateway) 8000 18000 主要 API 入口
Studio (Dashboard) 3000 18000 Web 管理界面
PostgreSQL 5432 15432 数据库连接
Analytics 4000 14000 日志分析

2. 连接PostgreSQL数据库

2.1查看PostgreSQL信息

2.2 使用Navicat连接

其中主机使用内网IP

端口使用映射的端口:15432

密码使用配置文件修改后的:pgsqlGNOAnboioiugiugiugviugiug

用户名特别注意添加租户信息否则报错FATAL: Tenant or user not found

例如:postgres.your-tenant-id

相关推荐
Android系统攻城狮2 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
快乐的韭菜根根3 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
U-Mail邮件系统3 小时前
自建邮箱服务器有哪些软件?三款主流邮件服务器软件推荐
运维·服务器
空空dream4 小时前
03 | 离线部署 FastAPI + Ollama(qwen2:0.5b):从 Docker 联调到 Kubernetes 验收
docker·ai·kubernetes·fastapi
天远数科5 小时前
零信任架构实战:基于天远贷前风险报告构建自动化消金信贷风控与多头共债排查网关
运维·人工智能·架构·自动化
别动我齐刘海6 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人
honsor6 小时前
机房IP化改造首选:以太网温湿度传感器,PoE供电+Modbus TCP一网搞定
linux·运维·服务器
星创易联6 小时前
PLC数据采集与远程运维平台:从边缘计算到集中监控
大数据·运维·边缘计算
郭老二7 小时前
【docker】docker compose使用,已nginx为例
nginx·docker·容器
寻道模式8 小时前
【运维心得】完整教程:绕过Win11限制让老机焕发新生
运维·操作系统·win11