# AIOps Docker Compose — embed 单应用容器 + MySQL + Redis # 访问: http://localhost:8080 (API + 前端 SPA 同一端口) # 构建: VERSION=v1.0.1 ./run.sh docker up # 署名 Logan.Li services: mysql: image: mysql:8.0 container_name: aiops-mysql hostname: aiops-mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-CHANGE_ME} MYSQL_DATABASE: ${MYSQL_DATABASE:-aiops} MYSQL_USER: ${MYSQL_USER:-aiops} MYSQL_PASSWORD: ${MYSQL_PASSWORD:-CHANGE_ME} TZ: Asia/Shanghai ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql command: > --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --innodb-buffer-pool-size=256M --performance-schema=OFF healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-p$$MYSQL_ROOT_PASSWORD"] interval: 10s timeout: 5s retries: 10 start_period: 30s networks: - aiops-network redis: image: redis:7-alpine container_name: aiops-redis hostname: aiops-redis restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data command: redis-server --appendonly yes healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 networks: - aiops-network aiops: image: ${DOCKERHUB_IMAGE:-lghost/aiops}:${VERSION:-dev} build: context: . dockerfile: Dockerfile args: VERSION: ${VERSION:-dev} BUILD_TIME: ${BUILD_TIME:-unknown} GIT_COMMIT: ${GIT_COMMIT:-unknown} container_name: aiops hostname: aiops restart: unless-stopped ports: - "8080:8080" # 容器 DNS:宿主机 systemd-resolved(127.0.0.53) 转发链路异常,导致外网域名 # (如 Loki 数据源 loki-cex.51aipay.com)在容器内解析失败 → 查询无返回。 # 显式指定公网上游 DNS 修复 // Logan.Li dns: - 223.5.5.5 - 8.8.8.8 environment: TZ: Asia/Shanghai MODE: release DATABASE_DRIVER: mysql DATABASE_HOST: mysql DATABASE_PORT: 3306 DATABASE_USER: ${MYSQL_USER:-aiops} DATABASE_PASSWORD: ${MYSQL_PASSWORD:-CHANGE_ME} DATABASE_DBNAME: ${MYSQL_DATABASE:-aiops} REDIS_DRIVER: redis REDIS_HOST: redis REDIS_PORT: 6379 JWT_SECRET: ${JWT_SECRET:-aiops-jwt-secret-change-me} # RDP 使用自研协议栈,第三方 grdp 已移除;该变量保留兼容但后端不再读取。 // Logan.Li RDP_ENGINE: ${RDP_ENGINE:-rdp} RDP_DEBUG: ${RDP_DEBUG:-1} volumes: - aiops_uploads:/app/uploads - /var/run/docker.sock:/var/run/docker.sock depends_on: mysql: condition: service_healthy redis: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/version"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: - aiops-network volumes: mysql_data: redis_data: aiops_uploads: networks: aiops-network: driver: bridge