在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:
关键改动说明
- 替换数据库服务:移除原PostgreSQL服务,改用官方YugabyteDB镜像,以单节点模式启动(适合开发测试场景)。
- 端口调整:YugabyteDB的PostgreSQL兼容端口默认是
5433,而非PostgreSQL的5432,因此所有端口映射和连接字符串都需对应修改。 - 连接字符串更新:Nakama的
--database.address参数中,把数据库主机从postgres改为yugabytedb,端口改为5433,保持用户名、密码和数据库名与原配置一致。 - 健康检查优化:给YugabyteDB添加基于
ysqlsh的健康检查,同时让Nakama在YugabyteDB完全就绪后再启动,避免迁移失败。 - 卷名修改:将数据卷改为
yb-data,避免与其他PostgreSQL环境的卷冲突。
额外提示
如果使用多节点YugabyteDB集群,需要修改YugabyteDB服务的启动命令,并将Nakama的连接地址指向集群的YSQL负载均衡端点,确保高可用。
内容的提问来源于stack exchange,提问作者dh YB
相关产品推荐
相关产品推荐

