94 lines
2.6 KiB
Plaintext
94 lines
2.6 KiB
Plaintext
|
|
%% IT 智能服务台 — 架构组件图(卷挂载重构前后对比)
|
||
|
|
%% 文件: class-diagram.mermaid
|
||
|
|
|
||
|
|
classDiagram
|
||
|
|
class HostServer {
|
||
|
|
+String path: /opt/wecom-it-desk/
|
||
|
|
+String ip: 10.90.5.110
|
||
|
|
+String domain: itsupport.servyou.com.cn
|
||
|
|
}
|
||
|
|
|
||
|
|
class AppDirectory {
|
||
|
|
+String path: /opt/wecom-it-desk/app/
|
||
|
|
+String role: 唯一代码源
|
||
|
|
+List~File~ pythonFiles
|
||
|
|
+Boolean hasAuthPy
|
||
|
|
}
|
||
|
|
|
||
|
|
class BackendDirectory {
|
||
|
|
+String path: /opt/wecom-it-desk/backend/
|
||
|
|
+File dockerfile
|
||
|
|
+File requirementsTxt
|
||
|
|
+String note: 不再包含 app/ 子目录
|
||
|
|
}
|
||
|
|
|
||
|
|
class DockerImage {
|
||
|
|
+String name: wecom-it-desk-backend:latest
|
||
|
|
+String base: python:3.12-slim
|
||
|
|
+String pythonVersion: 3.12
|
||
|
|
+Boolean containsCode: false
|
||
|
|
+Boolean containsDeps: true
|
||
|
|
+String envPythondontWriteBytecode: "1"
|
||
|
|
}
|
||
|
|
|
||
|
|
class DockerContainer {
|
||
|
|
+String name: wecom_it_backend
|
||
|
|
+String workdir: /app
|
||
|
|
+String command: uvicorn app.main:app
|
||
|
|
+Integer port: 8000
|
||
|
|
+Boolean healthy
|
||
|
|
}
|
||
|
|
|
||
|
|
class VolumeMount {
|
||
|
|
+String hostPath: /opt/wecom-it-desk/app/
|
||
|
|
+String containerPath: /app/app/
|
||
|
|
+String type: bind
|
||
|
|
+String mode: rw
|
||
|
|
}
|
||
|
|
|
||
|
|
class UploadVolume {
|
||
|
|
+String name: backend-uploads
|
||
|
|
+String containerPath: /app/uploads/
|
||
|
|
+String type: named_volume
|
||
|
|
}
|
||
|
|
|
||
|
|
class LogMount {
|
||
|
|
+String hostPath: /var/log/wecom-it-desk/
|
||
|
|
+String containerPath: /app/logs/
|
||
|
|
+String type: bind
|
||
|
|
}
|
||
|
|
|
||
|
|
class DockerCompose {
|
||
|
|
+String file: docker-compose.yml
|
||
|
|
+String buildContext: ./backend
|
||
|
|
+List~Service~ services
|
||
|
|
}
|
||
|
|
|
||
|
|
class HealthCheck {
|
||
|
|
+String endpoint: /health
|
||
|
|
+Integer interval: 30
|
||
|
|
+Integer timeout: 10
|
||
|
|
+Integer retries: 3
|
||
|
|
+Integer startPeriod: 40
|
||
|
|
}
|
||
|
|
|
||
|
|
HostServer --> AppDirectory : contains
|
||
|
|
HostServer --> BackendDirectory : contains
|
||
|
|
HostServer --> DockerCompose : contains
|
||
|
|
|
||
|
|
DockerCompose --> DockerImage : builds
|
||
|
|
DockerCompose --> DockerContainer : runs
|
||
|
|
DockerCompose --> VolumeMount : configures
|
||
|
|
DockerCompose --> UploadVolume : configures
|
||
|
|
DockerCompose --> LogMount : configures
|
||
|
|
|
||
|
|
DockerImage --> DockerContainer : basis for
|
||
|
|
VolumeMount --> DockerContainer : mounts code to /app/app/
|
||
|
|
UploadVolume --> DockerContainer : mounts uploads to /app/uploads/
|
||
|
|
LogMount --> DockerContainer : mounts logs to /app/logs/
|
||
|
|
|
||
|
|
AppDirectory --> VolumeMount : source of
|
||
|
|
DockerContainer --> HealthCheck : monitored by
|
||
|
|
|
||
|
|
BackendDirectory --> DockerImage : provides Dockerfile + requirements.txt
|