feat(release): 统一版本与 embed 部署,推送 lghost/aiops 镜像

- resolve_version 统一二进制/Docker/K8s 版本解析
- docker-compose 简化为 mysql+redis+aiops 单应用容器
- 新增 release/docker push/kubernetes push 构建并推送 Docker Hub
- K8s deployment 镜像改为 lghost/aiops:<tag> 语义版本
This commit is contained in:
Logan.Li committed 2026-06-26 16:37:15 +08:00
1 parent 8be51ac514
commit 9f5ce249f1
6 files changed
+302 -162

No files matched your search

+27 -32
View File
@@ -1,5 +1,9 @@
# AIOps Docker Compose — embed 单应用容器 + MySQL + Redis
# 访问: http://localhost:8080 (API + 前端 SPA 同一端口)
# 构建: VERSION=v1.0.1 ./run.sh docker up
# 署名 Logan.Li
services:
# ======================== MySQL 数据库 ========================
mysql:
image: mysql:8.0
container_name: aiops-mysql
@@ -28,7 +32,6 @@ services:
networks:
- aiops-network
# ======================== Redis 缓存 ========================
redis:
image: redis:7-alpine
container_name: aiops-redis
@@ -47,24 +50,35 @@ services:
networks:
- aiops-network
# ======================== Go 后端服务 ========================
backend:
aiops:
image: ${DOCKERHUB_IMAGE:-lghost/aiops}:${VERSION:-dev}
build:
context: .
dockerfile: backend/Dockerfile
dockerfile: Dockerfile.embed
args:
VERSION: ${VERSION:-dev}
BUILD_TIME: ${BUILD_TIME:-unknown}
container_name: aiops-backend
hostname: aiops-backend
GIT_COMMIT: ${GIT_COMMIT:-unknown}
container_name: aiops
hostname: aiops
restart: unless-stopped
ports:
- "8080:8080"
environment:
- MODE=${MODE:-release}
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}
volumes:
- ./backend/config.yaml:/app/config.yaml
- ./backend/data:/app/data
- aiops_uploads:/app/uploads
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
mysql:
@@ -72,38 +86,19 @@ services:
redis:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
test: ["CMD", "curl", "-f", "http://localhost:8080/version"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
dns:
- 127.0.0.11
- 114.114.114.114
- 223.5.5.5
networks:
- aiops-network
# ======================== React 前端 + Nginx ========================
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: aiops-frontend
hostname: aiops-frontend
restart: unless-stopped
ports:
- "80:80"
depends_on:
backend:
condition: service_healthy
networks:
- aiops-network
volumes:
mysql_data:
redis_data:
aiops_uploads:
networks:
aiops-network:
driver: bridge
driver: bridge