SuperAPI AI 工具集

docker

部署与运维

查看项目

更新于 10-16 06:38

技能介绍

用途

该技能用于为 VanDaemon 配置基于 Docker 与 Docker Compose 的容器化。VanDaemon 采用多容器架构:本地开发时 API 与 Web 分为独立容器,另外提供面向 Fly.io 的合并单容器部署方案。API 运行于 .NET 10,Web 前端使用 nginx 托管 Blazor WASM 静态文件,并代理 API 与 WebSocket 请求。数据通过 Docker 卷持久化,用于 JSON 文件存储。

主要能力

技能涉及的关键概念包括:

  • 多阶段构建:用于最小化镜像体积,例如 FROM sdk AS build → FROM aspnet AS final。
  • 健康检查:用于容器编排,例如 HEALTHCHECK CMD curl /health。
  • 卷挂载:用于持久化 JSON 数据,例如 api-data:/app/data。
  • 桥接网络:用于容器间通信,应使用 http://api:80 而非 localhost:5000。
  • Supervisor:用于多进程容器,将 nginx 与 API 合并以适配 Fly.io。

常见模式包括:容器网络配置中使用容器名而非 localhost,并通过 depends_on 与 condition: service_healthy 控制依赖启动顺序;以及通过命名卷持久化数据,如 api-data(JSON 配置文件)和 api-logs(Serilog 输出)。

使用方式

从解决方案根目录启动开发环境:

docker compose up -d

查看日志:

docker compose logs -f

代码变更后重新构建:

docker compose up --build

访问入口如下:

  • Web UI:http://localhost:8080(Blazor WASM 前端)
  • API:http://localhost:5000(REST API + Swagger)
  • Health:http://localhost:5000/health(容器健康检查)
  • SignalR:ws://localhost:5000/hubs/telemetry(实时更新)

适用场景

适用于构建容器、配置 docker-compose、部署到 Docker 等容器化相关任务。相关技能包括:.NET 10 SDK 在 Dockerfile 中的配置可参见 dotnet 技能;API 容器配置可参见 aspnet-core 技能;日志卷配置可参见 serilog 技能。

限制

资料未提供该技能对目标项目版本、运行环境、权限及具体收费模式的要求,这些信息暂未提供。