inklog 0.3.0-rc.1

Enterprise-grade Rust logging infrastructure
# Docker Compose 配置 - Inklog 集成测试环境
#
# 使用方式:
#   docker-compose -f docker/docker-compose.test.yml up -d    # 启动所有服务
#   docker-compose -f docker/docker-compose.test.yml down     # 停止并清理

version: "3.8"

services:
  # ============ PostgreSQL 数据库 ============
  # 用于数据库 Sink 的集成测试
  postgres:
    image: postgres:16-alpine
    container_name: inklog-test-postgres
    environment:
      POSTGRES_USER: ${POSTGRES_USER:-inklog}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-inklog}
      POSTGRES_DB: ${POSTGRES_DB:-inklog_test}
    ports:
      - "5432:5432"
    volumes:
      - postgres_test_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER:-inklog} -d $${POSTGRES_DB:-inklog_test}"]
      interval: 5s
      timeout: 5s
      retries: 5
      start_period: 10s
    networks:
      - inklog-test-network
    # 隔离配置:不影响本地开发环境
    restart: "no"
    # 资源限制
    deploy:
      resources:
        limits:
          memory: 512M

  # ============ MySQL 数据库 ============
  # 用于跨数据库兼容性测试
  mysql:
    image: mysql:8.0-oracle
    container_name: inklog-test-mysql
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-inklog_root}
      MYSQL_USER: ${MYSQL_USER:-inklog}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD:-inklog}
      MYSQL_DATABASE: ${MYSQL_DATABASE:-inklog_test}
    ports:
      - "3306:3306"
    volumes:
      - mysql_test_data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD:-inklog_root}"]
      interval: 5s
      timeout: 5s
      retries: 5
      start_period: 30s
    networks:
      - inklog-test-network
    restart: "no"
    deploy:
      resources:
        limits:
          memory: 512M
    command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

  # ============ Redis 缓存 ============
  # 用于缓存 Sink 的集成测试
  redis:
    image: redis:7-alpine
    container_name: inklog-test-redis
    ports:
      - "6379:6379"
    volumes:
      - redis_test_data:/data
    command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 5s
      retries: 5
    networks:
      - inklog-test-network
    restart: "no"
    deploy:
      resources:
        limits:
          memory: 256M


# ============ 网络配置 ============
networks:
  inklog-test-network:
    driver: bridge
    name: inklog_test_network

# ============ 卷配置 ============
volumes:
  postgres_test_data:
    name: inklog_test_postgres_data
  mysql_test_data:
    name: inklog_test_mysql_data
  redis_test_data:
    name: inklog_test_redis_data