ci: 添加 Api 和 Admin 的 Dockerfile
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
87d3f450f9
commit
f579c8f8c5
|
|
@ -1,56 +1,19 @@
|
|||
# 学业邑规划 - 后台管理系统 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
|
||||
ENV LANG=C.UTF-8
|
||||
ENV LC_ALL=C.UTF-8
|
||||
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
|
||||
|
||||
# 安装 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
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:10.0-preview AS base
|
||||
WORKDIR /app
|
||||
EXPOSE 8080
|
||||
EXPOSE 8081
|
||||
|
||||
# 复制后端发布文件(包含 wwwroot)
|
||||
COPY --from=publish /app/publish .
|
||||
FROM mcr.microsoft.com/dotnet/sdk:10.0-preview AS build
|
||||
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.Infrastructure/MiAssessment.Infrastructure.csproj", "src/MiAssessment.Infrastructure/"]
|
||||
COPY ["src/MiAssessment.Core/MiAssessment.Core.csproj", "src/MiAssessment.Core/"]
|
||||
RUN dotnet restore "src/MiAssessment.Admin/MiAssessment.Admin.csproj"
|
||||
COPY . .
|
||||
RUN dotnet publish "src/MiAssessment.Admin/MiAssessment.Admin.csproj" -c Release -o /app/publish --no-restore
|
||||
|
||||
FROM base AS final
|
||||
WORKDIR /app
|
||||
COPY --from=build /app/publish .
|
||||
ENTRYPOINT ["dotnet", "MiAssessment.Admin.dll"]
|
||||
|
|
|
|||
|
|
@ -1,49 +1,18 @@
|
|||
# 学业邑规划 - 小程序 API 服务 Docker 构建文件
|
||||
|
||||
# ==================== 阶段1: 基础运行环境 ====================
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble AS base
|
||||
ENV LANG=C.UTF-8
|
||||
ENV LC_ALL=C.UTF-8
|
||||
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
|
||||
USER $APP_UID
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:10.0-preview AS base
|
||||
WORKDIR /app
|
||||
EXPOSE 8080
|
||||
EXPOSE 5238
|
||||
|
||||
# ==================== 阶段2: 构建后端 ====================
|
||||
FROM mcr.microsoft.com/dotnet/sdk:10.0-noble AS build
|
||||
ARG BUILD_CONFIGURATION=Release
|
||||
FROM mcr.microsoft.com/dotnet/sdk:10.0-preview AS build
|
||||
WORKDIR /src
|
||||
COPY ["src/MiAssessment.Api/MiAssessment.Api.csproj", "src/MiAssessment.Api/"]
|
||||
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.Api/MiAssessment.Api.csproj"
|
||||
COPY . .
|
||||
RUN dotnet publish "src/MiAssessment.Api/MiAssessment.Api.csproj" -c Release -o /app/publish --no-restore
|
||||
|
||||
# 复制项目文件
|
||||
COPY src/MiAssessment.Api/MiAssessment.Api.csproj src/MiAssessment.Api/
|
||||
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.Api/MiAssessment.Api.csproj
|
||||
|
||||
# 复制所有源码
|
||||
COPY src/ src/
|
||||
|
||||
# 构建后端
|
||||
WORKDIR /src/src/MiAssessment.Api
|
||||
RUN dotnet build MiAssessment.Api.csproj -c $BUILD_CONFIGURATION -o /app/build
|
||||
|
||||
# ==================== 阶段3: 发布 ====================
|
||||
FROM build AS publish
|
||||
ARG BUILD_CONFIGURATION=Release
|
||||
RUN dotnet publish MiAssessment.Api.csproj -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
|
||||
|
||||
# ==================== 阶段4: 最终运行镜像 ====================
|
||||
FROM base AS final
|
||||
WORKDIR /app
|
||||
COPY --from=publish /app/publish .
|
||||
|
||||
# 创建 PDF 输出目录和静态图片目录,并赋予写入权限
|
||||
USER root
|
||||
RUN mkdir -p /app/wwwroot/reports /app/wwwroot/images/report \
|
||||
&& chown -R $APP_UID:$APP_UID /app/wwwroot/reports /app/wwwroot/images/report
|
||||
USER $APP_UID
|
||||
|
||||
COPY --from=build /app/publish .
|
||||
ENTRYPOINT ["dotnet", "MiAssessment.Api.dll"]
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user