主要能力: SuperAdmin 专用入口:组织与权限 → 运维与审计。 操作日志分页查询,支持时间、账号、路径、方法和状态码筛选。 汇总自动排课、课表发布、补考安排三类失败后台任务。 实时检查数据库、缓存、任务通道及积压状态。 聚合 5xx、失败/重试任务、健康探针和备份时效告警。 SQLite 在线备份;MySQL 调用原生客户端备份。 SHA-256 校验及隔离数据库恢复演练,不覆盖业务库。 MySQL 强制使用独立运维连接,容器增加持久化备份卷与数据库客户端。
55 lines
1.7 KiB
Docker
55 lines
1.7 KiB
Docker
# syntax=docker/dockerfile:1
|
|
|
|
FROM --platform=$BUILDPLATFORM node:24-alpine AS frontend
|
|
WORKDIR /source
|
|
COPY web/package.json web/package-lock.json ./web/
|
|
RUN npm --prefix web ci
|
|
COPY web/ ./web/
|
|
RUN npm --prefix web run build
|
|
|
|
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:10.0-alpine AS build
|
|
ARG TARGETARCH
|
|
WORKDIR /source
|
|
COPY global.json ./
|
|
COPY .env.example ./
|
|
COPY src/Jiaowu.Api/Jiaowu.Api.csproj ./src/Jiaowu.Api/
|
|
RUN dotnet restore ./src/Jiaowu.Api/Jiaowu.Api.csproj --arch "$TARGETARCH"
|
|
COPY src/Jiaowu.Api/ ./src/Jiaowu.Api/
|
|
COPY --from=frontend /source/src/Jiaowu.Api/wwwroot/ ./src/Jiaowu.Api/wwwroot/
|
|
RUN dotnet publish ./src/Jiaowu.Api/Jiaowu.Api.csproj \
|
|
--configuration Release \
|
|
--arch "$TARGETARCH" \
|
|
--no-restore \
|
|
--no-self-contained \
|
|
--output /app/publish \
|
|
-p:BuildFrontendOnPublish=false \
|
|
-p:DebugSymbols=false \
|
|
-p:DebugType=None
|
|
|
|
FROM mcr.microsoft.com/dotnet/aspnet:10.0-alpine AS final
|
|
WORKDIR /app
|
|
ENV ASPNETCORE_ENVIRONMENT=Production \
|
|
ASPNETCORE_HTTP_PORTS=8080 \
|
|
DOTNET_EnableDiagnostics=0 \
|
|
Operations__BackupDirectory=/var/lib/jiaowu/backups \
|
|
Operations__MySqlDumpPath=mariadb-dump \
|
|
Operations__MySqlClientPath=mariadb
|
|
EXPOSE 8080
|
|
COPY --from=build /app/publish/ ./
|
|
ARG UID=10001
|
|
RUN apk add --no-cache font-noto-cjk mariadb-client
|
|
RUN adduser \
|
|
--disabled-password \
|
|
--gecos "" \
|
|
--home "/nonexistent" \
|
|
--shell "/sbin/nologin" \
|
|
--no-create-home \
|
|
--uid "${UID}" \
|
|
appuser
|
|
RUN mkdir -p /var/lib/jiaowu/backups \
|
|
&& chown appuser:appuser /var/lib/jiaowu/backups \
|
|
&& chmod 700 /var/lib/jiaowu/backups
|
|
VOLUME ["/var/lib/jiaowu/backups"]
|
|
USER appuser
|
|
ENTRYPOINT ["dotnet", "Jiaowu.Api.dll"]
|