mi-assessment/server/MiAssessment/src/MiAssessment.Admin/Dockerfile
2026-02-08 23:55:13 +08:00

54 lines
1.8 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 学业邑规划 - 后台管理系统 Docker 构建文件
# 前端已预构建在 wwwroot 目录
# ==================== 阶段1: 构建后端 ====================
FROM mcr.microsoft.com/dotnet/sdk:10.0-noble AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
# 复制项目文件
COPY src/MiAssessment.Admin/MiAssessment.Admin.csproj src/MiAssessment.Admin/
COPY src/MiAssessment.Admin.Business/MiAssessment.Admin.Business.csproj src/MiAssessment.Admin.Business/
COPY src/MiAssessment.Model/MiAssessment.Model.csproj src/MiAssessment.Model/
COPY src/MiAssessment.Core/MiAssessment.Core.csproj src/MiAssessment.Core/
COPY src/MiAssessment.Infrastructure/MiAssessment.Infrastructure.csproj src/MiAssessment.Infrastructure/
# 还原依赖
RUN dotnet restore src/MiAssessment.Admin/MiAssessment.Admin.csproj
# 复制所有源码
COPY src/ src/
# 构建后端
WORKDIR /src/src/MiAssessment.Admin
RUN dotnet build MiAssessment.Admin.csproj -c $BUILD_CONFIGURATION -o /app/build
# ==================== 阶段2: 发布后端 ====================
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish MiAssessment.Admin.csproj -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
# ==================== 阶段3: 最终运行镜像 ====================
FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble AS final
# 安装 SkiaSharp 原生依赖(用于验证码生成等图形处理)
RUN apt-get update && apt-get install -y \
libfontconfig1 \
libfreetype6 \
libx11-6 \
libxext6 \
libxrender1 \
libc6-dev \
libgdiplus \
&& rm -rf /var/lib/apt/lists/*
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
# 复制后端发布文件(包含 wwwroot
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MiAssessment.Admin.dll"]