refactor: Dockerfile.embed → Dockerfile + fix Login TS error
- Dockerfile.embed 重命名为 Dockerfile(统一命名规范) - docker-compose.yml / run.sh 引用更新 - 全量文档(CLAUDE/AGENTS/README/docs)Dockerfile.embed → Dockerfile - fix: Login.tsx User 类型缺少 email/status 字段
This commit is contained in:
1 parent
4cb0e62857
commit
092d0e4b9e
11 files changed
+21
-21
No files matched your search
@@ -50,13 +50,13 @@
|
||||
| `config.yaml` | 本地开发默认配置(SQLite + redka,端口 8080) |
|
||||
| `docker-compose.yml` | 3 容器:MySQL 8.0 + Redis 7-alpine + AIOps(:8080) |
|
||||
| `docker-compose.k8s.yml` | 单应用容器 + 外部 DB |
|
||||
| `Dockerfile.embed` | 4-stage Embed 镜像(前端→后端→Agent→Runtime),Compose 与 K8s 共用 |
|
||||
| `Dockerfile` | 4-stage Embed 镜像(前端→后端→Agent→Runtime),Compose 与 K8s 共用 |
|
||||
| `.env.example` | Docker Compose 环境变量示例 |
|
||||
| `deploy/kubernetes/` | K8s 清单:`devops` 命名空间、NodePort 30080 |
|
||||
| `run.sh` | 统一入口:dev / build / docker / kubernetes / release / binary |
|
||||
| `Makefile` | 快捷命令(dev / build / docker-up / lint 等),部分委托给 `run.sh`,部分已陈旧 |
|
||||
|
||||
> 注意:项目根目录**没有**独立的 `Dockerfile`,只有 `Dockerfile.embed`。`docker-compose.yml` 直接引用 `Dockerfile.embed`。
|
||||
> 注意:项目根目录使用 `Dockerfile`(4-stage embed 单容器方案)。前端构建嵌入后端二进制,`docker-compose.yml` 直接引用。
|
||||
|
||||
### 2.2 后端
|
||||
|
||||
@@ -120,7 +120,7 @@ aiops/
|
||||
├── tests/ # 集成测试脚本
|
||||
├── scripts/ # 构建辅助脚本(kubectl 安装、alpine 镜像源等)
|
||||
├── run.sh # 统一入口
|
||||
├── Dockerfile.embed # 推荐生产镜像
|
||||
├── Dockerfile # 推荐生产镜像
|
||||
├── docker-compose.yml
|
||||
├── docker-compose.k8s.yml
|
||||
├── config.yaml
|
||||
@@ -486,7 +486,7 @@ WebSocket 无法设置自定义 header → 后端 `JWTAuth` 支持 `?token=` que
|
||||
| FE4 | Radix Dialog 警告 | 必须有 `<DialogDescription>` |
|
||||
| FE5 | Select.Item 空字符串 value | 用 sentinel 值 `__manual` |
|
||||
| FE6 | API 字段名不匹配 | 检查前后端命名一致性 |
|
||||
| Build | Mac 构建 Linux 二进制 | 不能直接用 `./run.sh build`;用 `Dockerfile.embed` 或在 Linux 构建 |
|
||||
| Build | Mac 构建 Linux 二进制 | 不能直接用 `./run.sh build`;用 `Dockerfile` 或在 Linux 构建 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
在 K8s 集群 `devops` 命名空间部署,单容器 embed 模式,NodePort 30080 暴露。
|
||||
|
||||
```bash
|
||||
./run.sh k8s deploy # 构建 Dockerfile.embed 镜像 + 全量部署 (MySQL+Redis+App)
|
||||
./run.sh k8s deploy # 构建 Dockerfile 镜像 + 全量部署 (MySQL+Redis+App)
|
||||
./run.sh k8s upgrade # 重新构建 + 滚动更新(不停机)
|
||||
./run.sh k8s status # 查看 pods/svc/pvc/ingress
|
||||
./run.sh k8s logs # 应用日志 (follow)
|
||||
@@ -207,7 +207,7 @@ aiops/
|
||||
│ └── reporter/ # HTTP 上报
|
||||
│
|
||||
├── deploy/kubernetes/ # K8s 部署清单 (devops 命名空间)
|
||||
├── Dockerfile.embed # 4 阶段 Embed 镜像 (前端→后端→Agent→Runtime)
|
||||
├── Dockerfile # 4 阶段 Embed 镜像 (前端→后端→Agent→Runtime)
|
||||
├── docker-compose.yml # 4 容器部署 (mysql+redis+backend+frontend)
|
||||
├── run.sh # 统一入口脚本
|
||||
└── Makefile # 快捷命令
|
||||
|
||||
File renamed without changes.
@@ -94,7 +94,7 @@ curl http://localhost:8080/version # 查看运行版本
|
||||
```
|
||||
|
||||
> Mac 上 `./run.sh build` 产出 **darwin** 二进制,仅本机可用。
|
||||
> Linux 服务器请在 Linux 上构建,或使用 Docker/K8s embed 镜像(`Dockerfile.embed` 固定 `GOOS=linux GOARCH=amd64`)。
|
||||
> Linux 服务器请在 Linux 上构建,或使用 Docker/K8s embed 镜像(`Dockerfile` 固定 `GOOS=linux GOARCH=amd64`)。
|
||||
|
||||
### Agent 构建
|
||||
|
||||
@@ -144,7 +144,7 @@ aiops/
|
||||
├── deploy/kubernetes/ # K8s 部署清单 (devops 命名空间)
|
||||
├── docker-compose.yml # MySQL + Redis + AIOps embed(3 容器)
|
||||
├── docker-compose.k8s.yml # 单应用容器(连接外部 DB)
|
||||
├── Dockerfile.embed # embed 单容器镜像(推荐)
|
||||
├── Dockerfile # embed 单容器镜像(推荐)
|
||||
├── run.sh # 统一入口脚本
|
||||
└── aiops # 独立二进制产物(gitignore,项目根目录)
|
||||
```
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@ services:
|
||||
image: ${DOCKERHUB_IMAGE:-lghost/aiops}:${VERSION:-dev}
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.embed
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
VERSION: ${VERSION:-dev}
|
||||
BUILD_TIME: ${BUILD_TIME:-unknown}
|
||||
|
||||
@@ -28,7 +28,7 @@ aiops/
|
||||
├── agent/ # 监控 Agent(独立 Go module)
|
||||
├── docs/ # 开发文档 + Agent CLI 设计文档集
|
||||
├── deploy/kubernetes/ # K8s 部署清单
|
||||
├── Dockerfile.embed # 推荐生产镜像
|
||||
├── Dockerfile # 推荐生产镜像
|
||||
├── docker-compose.yml # 3 容器部署
|
||||
└── run.sh # 统一入口脚本
|
||||
```
|
||||
|
||||
+1
-1
@@ -66,4 +66,4 @@ Compose: ./run.sh docker up → mysql + redis + aiops (embed, :8080)
|
||||
K8s: ./run.sh kubernetes → lghost/aiops:<tag> embed 单 Pod
|
||||
```
|
||||
|
||||
> 前后端分离的 Nginx 容器已废弃,统一使用 `Dockerfile.embed` 单容器方案。
|
||||
> 前后端分离的 Nginx 容器已废弃,统一使用 `Dockerfile` 单容器方案。
|
||||
+5
-5
@@ -143,7 +143,7 @@ WantedBy=multi-user.target
|
||||
### 架构(3 容器)
|
||||
|
||||
```
|
||||
mysql:8.0 + redis:7-alpine + aiops (Dockerfile.embed)
|
||||
mysql:8.0 + redis:7-alpine + aiops (Dockerfile)
|
||||
↓
|
||||
http://localhost:8080
|
||||
(API + WebSocket + 前端 SPA)
|
||||
@@ -194,7 +194,7 @@ VERSION=v1.5.0 docker compose -f docker-compose.k8s.yml up -d --build
|
||||
### 镜像
|
||||
|
||||
- 默认镜像:`lghost/aiops:<tag>`
|
||||
- 构建文件:`Dockerfile.embed`
|
||||
- 构建文件:`Dockerfile`
|
||||
- 命名空间:`devops`
|
||||
- 访问:`http://<NODE_IP>:30080`
|
||||
|
||||
@@ -217,7 +217,7 @@ VERSION=v1.5.0 docker compose -f docker-compose.k8s.yml up -d --build
|
||||
./run.sh kubernetes push v1.5.0
|
||||
```
|
||||
|
||||
`Dockerfile.embed` 内固定 `GOOS=linux GOARCH=amd64`,在 Mac 上 `docker build` 产出的是 Linux 镜像。
|
||||
`Dockerfile` 内固定 `GOOS=linux GOARCH=amd64`,在 Mac 上 `docker build` 产出的是 Linux 镜像。
|
||||
|
||||
### 运维命令
|
||||
|
||||
@@ -248,7 +248,7 @@ VERSION=v1.5.0 docker compose -f docker-compose.k8s.yml up -d --build
|
||||
| 操作 | Mac 支持 | 说明 |
|
||||
|------|---------|------|
|
||||
| `./run.sh build` | ✅(darwin 二进制) | 仅本机运行 |
|
||||
| `docker build` (Dockerfile.embed) | ✅ | 产出 linux/amd64 镜像 |
|
||||
| `docker build` (Dockerfile) | ✅ | 产出 linux/amd64 镜像 |
|
||||
| `docker push lghost/aiops:tag` | ✅ | 需 `docker login` |
|
||||
| `./run.sh release v1.x` | ✅ | 完整发版流程 |
|
||||
|
||||
@@ -280,7 +280,7 @@ K8s 探针使用 `/version`。
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `run.sh` | 统一入口(build/docker/kubernetes/release) |
|
||||
| `Dockerfile.embed` | embed 单容器镜像(推荐) |
|
||||
| `Dockerfile` | embed 单容器镜像(推荐) |
|
||||
| `docker-compose.yml` | MySQL + Redis + AIOps |
|
||||
| `deploy/kubernetes/deployment.yaml` | K8s Deployment + NodePort |
|
||||
| `.gitignore` | 忽略 `aiops`、`backend/aiops*` 等编译产物 |
|
||||
@@ -84,7 +84,7 @@ aiops/
|
||||
├── deploy/kubernetes/ # K8s 清单 (devops 命名空间)
|
||||
├── docker-compose.yml # MySQL + Redis + AIOps embed
|
||||
├── docker-compose.k8s.yml # 单应用 + 外部 DB
|
||||
├── Dockerfile.embed # embed 单容器镜像(推荐)
|
||||
├── Dockerfile # embed 单容器镜像(推荐)
|
||||
├── run.sh # 统一入口脚本
|
||||
├── aiops # 独立二进制产物(gitignore)
|
||||
└── README.md
|
||||
@@ -117,7 +117,7 @@ aiops/
|
||||
| 文件 | 用途 |
|
||||
|------|------|
|
||||
| `run.sh` | build / docker / kubernetes / release 统一入口 |
|
||||
| `Dockerfile.embed` | 生产推荐:前端嵌入后端单容器 |
|
||||
| `Dockerfile` | 生产推荐:前端嵌入后端单容器 |
|
||||
| `docker-compose.yml` | 3 容器:MySQL + Redis + AIOps |
|
||||
| `backend/static/` | `go:embed` 目标,由 `./run.sh build` 同步 |
|
||||
| `./aiops` | 独立二进制输出路径(项目根目录) |
|
||||
@@ -163,5 +163,5 @@ aiops/
|
||||
编译时通过 ldflags 注入 `main.Version` / `BuildTime` / `GitCommit`:
|
||||
|
||||
- `./run.sh build` / `./run.sh build tag v1.5.0`
|
||||
- `Dockerfile.embed` 构建参数 `VERSION` / `BUILD_TIME` / `GIT_COMMIT`
|
||||
- `Dockerfile` 构建参数 `VERSION` / `BUILD_TIME` / `GIT_COMMIT`
|
||||
- 运行时:`./aiops version`、`GET /version`
|
||||
@@ -34,7 +34,7 @@ export function Login() {
|
||||
setError('');
|
||||
setLoading(true);
|
||||
try {
|
||||
const result = await authApi.login(username, password) as { user: { id: number; username: string }; token: string; permissions?: string[] };
|
||||
const result = await authApi.login(username, password) as { user: { id: number; username: string; email: string; status: number }; token: string; permissions?: string[] };
|
||||
useUserStore.getState().login(result.user, result.token, result.permissions ?? null);
|
||||
localStorage.setItem('token', result.token);
|
||||
navigate('/', { replace: true });
|
||||
|
||||
Reference in new issue
Block a user