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:
1 parent
8be51ac514
commit
9f5ce249f1
6 files changed
+302
-162
No files matched your search
+27
-32
@@ -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
|
||||
Reference in new issue
Block a user