服务端根据登录账号绑定本人档案,不接受学生 ID,无法代他人申请。 成绩单仅包含正式发布成绩;无已发布成绩时明确提示。 同类型、同用途 5 分钟内重复申请复用已有有效凭证。 申请后即时生成 PDF,可在本人凭证列表下载、二维码验真。 管理员的下载记录、失效、重签能力保持不变。
48 lines
1.4 KiB
Docker
48 lines
1.4 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
|
|
EXPOSE 8080
|
|
COPY --from=build /app/publish/ ./
|
|
ARG UID=10001
|
|
RUN apk add --no-cache font-noto-cjk
|
|
RUN adduser \
|
|
--disabled-password \
|
|
--gecos "" \
|
|
--home "/nonexistent" \
|
|
--shell "/sbin/nologin" \
|
|
--no-create-home \
|
|
--uid "${UID}" \
|
|
appuser
|
|
USER appuser
|
|
ENTRYPOINT ["dotnet", "Jiaowu.Api.dll"]
|