赵泠 2025-06-23 09:45 采纳率: 97.8%
浏览 0
已采纳

Notion Docker部署时容器无法启动,提示“Database connection refused”,如何解决?

在部署Notion Docker容器时,如果遇到“Database connection refused”错误,通常是因为数据库服务未正确启动或配置不当。首先,确认Docker-compose文件中数据库服务的配置是否正确,例如数据库名称、用户名和密码等参数需与Notion服务保持一致。其次,检查数据库容器是否已成功启动并运行,可通过`docker ps`命令验证。若数据库容器异常,尝试查看日志(`docker logs `)以定位问题。 此外,确保数据库服务在Notion服务启动前已完全初始化,可调整Docker-compose文件中的依赖关系,添加`depends_on`字段指定顺序。如果使用的是自定义数据库而非默认的PostgreSQL镜像,还需验证数据库版本兼容性。最后,重启相关服务(`docker-compose up -d`)以应用更改,通常能解决连接被拒绝的问题。
  • 写回答

1条回答 默认 最新

  • 远方之巅 2025-06-23 09:45
    关注

    1. 初步检查:验证Docker-compose配置

    在部署Notion Docker容器时,如果遇到“Database connection refused”错误,第一步需要检查Docker-compose文件中数据库服务的配置是否正确。以下是关键配置项:

    • 数据库名称:确保与Notion服务使用的数据库名称一致。
    • 用户名和密码:确认这些参数与Notion服务中的环境变量匹配。
    • 端口号:验证数据库服务暴露的端口是否与Notion服务连接的端口一致。

    例如,以下是一个基本的Docker-compose配置示例:

    
    version: '3'
    services:
      db:
        image: postgres:13
        environment:
          POSTGRES_DB: notiondb
          POSTGRES_USER: notionuser
          POSTGRES_PASSWORD: notionpassword
      notion:
        image: notion-docker-image
        depends_on:
          - db
        environment:
          DB_NAME: notiondb
          DB_USER: notionuser
          DB_PASSWORD: notionpassword
    

    2. 验证容器状态

    通过运行`docker ps`命令,可以查看所有正在运行的容器。如果数据库容器未显示在列表中,说明它可能未能成功启动。

    若发现数据库容器异常,可以通过以下命令查看日志以定位问题:

    
    docker logs <container_id>
    

    常见的错误包括权限问题、数据库初始化失败或镜像版本不兼容。

    3. 调整启动顺序

    确保数据库服务在Notion服务启动前已完全初始化。可以在Docker-compose文件中添加`depends_on`字段指定启动顺序:

    
    services:
      db:
        image: postgres:13
      notion:
        image: notion-docker-image
        depends_on:
          - db
    

    需要注意的是,`depends_on`仅保证启动顺序,并不能确保数据库完全初始化完成。为了进一步确保初始化完成,可以使用健康检查脚本或延迟启动策略。

    4. 数据库版本兼容性

    如果使用的是自定义数据库而非默认的PostgreSQL镜像,需验证数据库版本与Notion服务的兼容性。不同版本的PostgreSQL可能存在协议或功能差异,导致连接失败。

    以下是验证步骤:

    1. 确认Notion服务支持的PostgreSQL版本范围。
    2. 检查当前使用的PostgreSQL镜像版本。
    3. 必要时切换到兼容版本的镜像。

    5. 解决方案总结与流程图

    最后,重启相关服务以应用更改。运行以下命令重新启动Docker-compose服务:

    
    docker-compose up -d
    

    以下是解决“Database connection refused”问题的整体流程图:

    graph TD
        A[检查Docker-compose配置] --> B[验证容器状态]
        B --> C[调整启动顺序]
        C --> D[验证数据库版本兼容性]
        D --> E[重启服务并测试]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 6月23日