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

在Docker Compose中配置YugabyteDB与Nakama的连接

适配YugabyteDB的Nakama Docker Compose配置

因为YugabyteDB完全兼容PostgreSQL协议,只需对原PostgreSQL配置做几处关键调整就能让Nakama顺利连接。以下是完整的适配配置:

version: '3'
services:
  yugabytedb:
    container_name: yugabytedb
    image: yugabytedb/yugabyte:latest
    command: ["bin/yugabyted", "start", "--daemon=false"]
    environment:
      - YB_DB_NAME=nakama
      - YB_DB_USER=postgres
      - YB_DB_PASSWORD=localdb
    volumes:
      - yb-data:/home/yugabyte/yb-data
    expose:
      - "5433"
      - "7000"
      - "9000"
    ports:
      - "5433:5433"
      - "7000:7000"
      - "9000:9000"
    healthcheck:
      test: ["CMD", "ysqlsh", "-U", "postgres", "-c", "SELECT 1;"]
      interval: 10s
      timeout: 5s
      retries: 5
  nakama:
    container_name: nakama
    image: heroiclabs/nakama:3.12.0
    entrypoint:
      - "/bin/sh"
      - "-ecx"
      - >
        /nakama/nakama migrate up --database.address postgres:localdb@yugabytedb:5433/nakama &&
        exec /nakama/nakama --name nakama1 --database.address postgres:localdb@yugabytedb:5433/nakama --logger.level DEBUG --session.token_expiry_sec 7200
    restart: always
    depends_on:
      yugabytedb:
        condition: service_healthy
    volumes:
      - ./:/nakama/data
    expose:
      - "7349"
      - "7350"
      - "7351"
    ports:
      - "7349:7349"
      - "7350:7350"
      - "7351:7351"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:7350/"]
      interval: 10s
      timeout: 5s
      retries: 5
volumes:
  yb-data:

关键改动说明

  1. 替换数据库服务:移除原PostgreSQL服务,改用官方YugabyteDB镜像,以单节点模式启动(适合开发测试场景)。
  2. 端口调整:YugabyteDB的PostgreSQL兼容端口默认是5433,而非PostgreSQL的5432,因此所有端口映射和连接字符串都需对应修改。
  3. 连接字符串更新:Nakama的--database.address参数中,把数据库主机从postgres改为yugabytedb,端口改为5433,保持用户名、密码和数据库名与原配置一致。
  4. 健康检查优化:给YugabyteDB添加基于ysqlsh的健康检查,同时让Nakama在YugabyteDB完全就绪后再启动,避免迁移失败。
  5. 卷名修改:将数据卷改为yb-data,避免与其他PostgreSQL环境的卷冲突。

额外提示

如果使用多节点YugabyteDB集群,需要修改YugabyteDB服务的启动命令,并将Nakama的连接地址指向集群的YSQL负载均衡端点,确保高可用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:26:16