54 lines
1.8 KiB
Docker
54 lines
1.8 KiB
Docker
# 学业邑规划 - 后台管理系统 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"]
|