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

Weblate连接AWS RDS PostgreSQL失败:CLI可连容器却报认证错误

问题:Weblate容器无法连接AWS RDS PostgreSQL,报密码认证失败

问题详情

  • 部署方式:使用Docker Compose运行Weblate容器,配置环境变量连接外部AWS RDS PostgreSQL数据库
  • 启动报错:

psql: error: connection to server at "XXXX.rds.amazonaws.com", port 5432 failed: FATAL: password authentication failed for user "postgres"

  • 异常矛盾:从Weblate容器内部通过CLI手动连接该RDS数据库,能够成功建立连接

所用Docker Compose配置

version: '3'
services:
  weblate:
    image: weblate/weblate
    tmpfs:
      - /app/cache
    volumes:
      - weblate-data:/app/data
    env_file:
      - ./environment
    restart: always
    ports:
      - 80:8080
    environment:
      POSTGRES_PASSWORD: XXXX
      POSTGRES_USER: myuser
      POSTGRES_DATABASE: mydb
      POSTGRES_HOST: XXX.rds.amazonaws.com
      POSTGRES_PORT: 5432

问题分析与解决方案

核心原因

报错显示Weblate尝试用postgres用户连接RDS,但你配置的是myuser,说明自定义的数据库用户环境变量没有被Weblate正确读取,大概率是配置冲突或变量优先级问题导致的。

具体解决步骤

  1. 排查env_file冲突
    检查./environment文件内容,确认其中没有定义POSTGRES_USER=postgres或其他与environment块冲突的变量。Docker Compose中environment块的变量优先级高于env_file,如果env_file里存在同名变量,会覆盖你在environment里设置的值。

  2. 直接使用DATABASE_URL变量
    跳过Weblate对POSTGRES_*系列变量的解析,直接用标准的DATABASE_URL环境变量指定完整连接串,避免解析错误。修改Docker Compose的environment块:

    environment:
      DATABASE_URL: postgres://myuser:XXXX@XXX.rds.amazonaws.com:5432/mydb
      # 注释掉原有的POSTGRES_*变量,避免冲突
      # POSTGRES_PASSWORD: XXXX
      # POSTGRES_USER: myuser
      # POSTGRES_DATABASE: mydb
      # POSTGRES_HOST: XXX.rds.amazonaws.com
      # POSTGRES_PORT: 5432
    
  3. 验证容器内环境变量
    启动容器后,执行以下命令进入容器并检查变量值:

    docker exec -it <weblate_container_name> bash
    echo $POSTGRES_USER
    echo $DATABASE_URL
    

    确认输出的用户是myuser,连接串信息正确。如果不是,检查Docker Compose文件路径、env_file路径是否正确,或者是否有其他配置文件覆盖了变量。

  4. 确认RDS权限配置
    虽然CLI能连接,但再次确认RDS的安全组已允许Weblate容器所在IP访问,且myuser用户对mydb数据库有足够权限(比如登录、创建表等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:45:41