Compose 编排

以下为 Docker Compose 完整配置,支持 MySQL / MariaDB / PostgreSQL。了解更多数据库配置请查看 数据库配置。

MySQL 编排(推荐)

当前版本:mysql:9.7.0。复制以下内容保存为 docker-compose.yml:

services:
  mysql:
    image: mysql:9.7.0
    container_name: redirect-mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root123
      MYSQL_DATABASE: redirect
      TZ: Asia/Shanghai
    ports:
      - "3306:3306"
    volumes:
      - mysql-data:/var/lib/mysql
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - redirect-net

  backend:
    image: ccr.ccs.tencentyun.com/redirect-go/server:latest
    container_name: redirect-backend
    restart: unless-stopped
    depends_on:
      mysql:
        condition: service_healthy
    ports:
      - "12328:12328"
    environment:
      DB_DRIVER: mysql
      DB_HOST: mysql
      DB_PORT: 3306
      DB_USER: root
      DB_PASSWORD: root123
      DB_NAME: redirect
      JWT_SECRET: your-secret-here
      ADMIN_USERNAME: admin
      ADMIN_PASSWORD: admin123
    volumes:
      - app-data:/app/data
    networks:
      - redirect-net

  portal:
    image: ccr.ccs.tencentyun.com/redirect-go/portal:latest
    container_name: redirect-portal
    restart: unless-stopped
    depends_on:
      - backend
    ports:
      - "12329:12329"
    environment:
      BACKEND_HOST: backend
      BACKEND_PORT: 12328
    networks:
      - redirect-net

  admin:
    image: ccr.ccs.tencentyun.com/redirect-go/admin:latest
    container_name: redirect-admin
    restart: unless-stopped
    depends_on:
      - backend
    ports:
      - "12330:12330"
    environment:
      BACKEND_HOST: backend
      BACKEND_PORT: 12328
    networks:
      - redirect-net

volumes:
  mysql-data:
  app-data:

networks:
  redirect-net:

其他数据库

如需使用 MariaDB(当前 mariadb:12.3.2)或 PostgreSQL(当前 postgres:18.4),请修改以下内容:

MariaDB 配置差异

# 将 mysql 服务替换为 mariadb
  mariadb:
    image: mariadb:12.3.2
    container_name: redirect-mariadb
    environment:
      MARIADB_ROOT_PASSWORD: root123
      MARIADB_DATABASE: redirect
    # ... 其余配置相同

# backend 环境变量保持不变(使用 mysql 驱动)
DB_DRIVER: mysql
DB_HOST: mariadb

PostgreSQL 配置差异

# 将 mysql 服务替换为 postgres
  postgres:
    image: postgres:18.4
    container_name: redirect-postgres
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: root123
      POSTGRES_DB: redirect

# backend 环境变量需要修改
DB_DRIVER: postgres
DB_HOST: postgres
DB_PORT: 5432
DB_USER: postgres
💡
详细参数说明请查看 数据库配置 页面。

启动服务

docker compose up -d

访问地址

  • 门户端:http://服务器IP:12329
  • 管理后台:http://服务器IP:12330
  • 后端 API:http://服务器IP:12328
⚠️
请修改默认值:
  • MYSQL_ROOT_PASSWORD — 数据库密码
  • JWT_SECRET — JWT 签名密钥
  • ADMIN_PASSWORD — 管理员密码