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

Docker Swarm部署DSpace7.6:UI无法显示PostgreSQL数据求助

DSpace 7.6 后端数据库连接配置修正方案

核心环境变量db__P__url的正确格式

DSpace REST服务连接PostgreSQL的JDBC URL必须严格遵循规范,格式为:

jdbc:postgresql://<数据库地址>:<端口>/<数据库名>?<可选参数>

针对Docker Swarm环境的两种配置方式

1. 优先使用服务名(推荐)

在Swarm的overlay网络(你的traefik-net)中,服务名可直接解析,无需硬编码IP,避免IP变动导致连接失效。假设你的PostgreSQL服务名为dspacedb,默认端口5432,DSpace数据库名为dspace,配置如下:

environment:
  - db__P__url=jdbc:postgresql://dspacedb:5432/dspace?sslmode=disable

若数据库开启SSL,需将sslmode=disable调整为对应值(如require)。

2. 使用指定IP地址(当前场景)

如果必须用traefik-net分配给dspacedb的IPmy_db_ip_adress,替换后配置如下:

environment:
  - db__P__url=jdbc:postgresql://my_db_ip_adress:5432/dspace?sslmode=disable

注意将my_db_ip_adress替换为实际IP(如172.18.0.3)。

必须配套的数据库认证变量

仅配置URL不足以建立连接,需同时设置用户名和密码:

environment:
  - db__P__username=dspace
  - db__P__password=dspace

上述值需与PostgreSQL中创建的DSpace数据库账号一致,若你修改过默认账号,需同步调整。

后续排查步骤

  1. 验证网络连通性:进入REST服务容器,执行psql -h <数据库地址> -U dspace dspace,输入密码确认能否正常连接数据库。
  2. 检查服务日志:查看REST服务日志,排查是否存在Connection refused、Invalid username/password等连接错误。
  3. 确认数据有效性:确保直接插入数据库的数据符合DSpace 7.6的表结构,版本不匹配或结构错误会导致UI无法识别数据。
  4. 重启服务生效:在Swarm中更新环境变量后,需重启REST服务:
    docker service update --env-add db__P__url=<正确URL> <你的REST服务名>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:12:46