You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL2环境下Docker Compose部署Postgres/PGAdmin权限错误求助

问题:WSL2 Ubuntu环境下Docker部署Postgres+PGAdmin权限错误

背景

在WSL2 Ubuntu环境中运行trpc示例应用,采用Docker部署Postgres数据库,使用postgres-docker-compose配置,且在个人仓库中复现了相同错误。

.env配置

DATABASE_URL=postgresql://postgres:password@localhost:5432/postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password
POSTGRES_DB=postgres
PGADMIN_DEFAULT_EMAIL=[xxx]@gmail.com
PGADMIN_DEFAULT_PASSWORD=password

报错信息

2023-12-30 07:30:49 [2023-12-30 12:30:49 +0000] [93] [INFO] Booting worker with pid: 93
2023-12-30 07:30:51 [2023-12-30 12:30:51 +0000] [93] [INFO] Worker exiting (pid: 93)
2023-12-30 07:30:51 ERROR  : Failed to create the directory /var/lib/pgadmin/sessions:
2023-12-30 07:30:51            [Errno 13] Permission denied: '/var/lib/pgadmin/sessions'
2023-12-30 07:30:51 HINT   : Create the directory /var/lib/pgadmin/sessions, ensure it is writeable by
2023-12-30 07:30:51          'pgadmin', and try again, or, create a config_local.py file
2023-12-30 07:30:51          and override the SESSION_DB_PATH setting per
2023-12-30 07:30:51          https://www.pgadmin.org/docs/pgadmin4/8.1/config_py.html
2023-12-30 07:30:51 [2023-12-30 12:30:51 +0000] [94] [INFO] Booting worker with pid: 94

解决建议

  • 调整本地挂载目录权限:如果使用PGAdmin持久化挂载,先在本地创建对应目录,再设置容器内pgadmin用户(UID为5050)的权限:
    mkdir -p ./pgadmin/sessions
    chown -R 5050:5050 ./pgadmin
    
    然后在docker-compose.yml的pgadmin服务中挂载该目录:
    volumes:
      - ./pgadmin/sessions:/var/lib/pgadmin/sessions
    
  • 自定义会话存储路径:通过环境变量指定可写的临时路径,在compose的pgadmin服务中添加:
    environment:
      - PGADMIN_CONFIG_SESSION_DB_PATH=/tmp/pgadmin/sessions
    
  • 临时用root启动PGAdmin:在compose的pgadmin服务中添加user: root(仅应急,不推荐生产环境)
  • 移除PGAdmin服务:如果仅需Postgres数据库,直接从docker-compose.yml中删除pgadmin相关配置,专注数据库连接即可

内容的提问来源于stack exchange,提问作者ScorpIan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 03:16:02