ubuntu部署supabase
安装supabse
https://supabase.com/docs/guides/local-development/cli/getting-started?queryGroups=platform&platform=linux
brew install supabase/tap/supabase
supabase init
supabase start
需要使用brewuser进行安装:
brew安装参考链接:
https://blog.csdn.net/kingdom_java/article/details/147554921?spm=1001.2014.3001.5502
supabase start启动报错
brewuser@server-4090-85:~$ supabase start
failed to inspect service: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.49/containers/supabase_db_brewuser/json": dial unix /var/run/docker.sock: connect: permission denied
根据你遇到的错误信息,核心问题在于 当前用户 brewuser
缺乏访问 Docker 守护进程的权限。以下是分步解决方案:
1. 核心问题定位
• 权限不足:Docker 的 Unix 套接字 /var/run/docker.sock
默认仅允许 root
用户或 docker
用户组成员访问。
• 用户组配置缺失:当前用户 brewuser
未加入 docker
用户组,导致 supabase start
命令无法调用 Docker 服务。
2. 解决方案
步骤一:将用户加入 Docker 用户组
# 将当前用户加入 docker 组(需 root 权限)
sudo usermod -aG docker brewuser# 刷新用户组权限(需重新登录或执行以下命令)
newgrp docker
步骤二:验证 Docker 权限
# 检查 docker.sock 的权限(组应为 docker)
ls -l /var/run/docker.sock
# 预期输出类似:srw-rw---- 1 root docker 0 May 13 10:00 /var/run/docker.sock# 测试 Docker 命令权限
docker ps # 应正常输出容器列表,而非报错
步骤三:重启 Docker 服务
# 重启 Docker 确保配置生效
sudo systemctl restart docker
步骤四:重新运行 Supabase
# 再次尝试启动本地开发环境
supabase start
3. 替代方案(若问题持续)
方案一:临时使用 sudo
提升权限
# 以 root 权限启动 Supabase
sudo supabase start
• 注意:长期使用 sudo
可能存在安全隐患。
方案二:手动修复套接字权限
# 强制修改套接字权限(谨慎操作)
sudo chmod 666 /var/run/docker.sock # 允许所有用户读写
• 风险提示:此操作会降低安全性,仅建议临时测试使用。
4. 关键原理说明
• Docker 权限模型:Docker 默认通过 Unix 套接字通信,非 docker
组成员需 sudo
提权。
• Supabase 依赖关系:Supabase CLI 在本地启动时会调用 Docker 创建多个容器(如数据库、存储服务),需完整的 Docker 控制权限。
5. 扩展建议
• 生产环境部署:若用于服务器环境,建议通过 systemd
配置 Docker 服务并限制权限。
• 开发环境隔离:使用 Docker Compose 或 NVM 管理本地环境,避免全局依赖冲突。
完成上述步骤后,supabase start
应能正常启动服务。若仍存在问题,可通过 supabase start --debug
生成详细日志进一步排查。
supabase start正常启动界面:
启动成功,默认访问地址是Studio URL: http://127.0.0.1:54323,127的IP地址默认可以替换成本机对外的IP地址;
前端界面效果: