From 6124131313a252b83cb5c9ad9922d8bec48a7bc4 Mon Sep 17 00:00:00 2001 From: cli <377476583@qq.com> Date: Mon, 19 May 2025 15:07:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=B4=E6=97=B6dockerfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JiShe.CollectBus.Main.sln | 1 + Temp.Dockerfile | 52 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 Temp.Dockerfile diff --git a/JiShe.CollectBus.Main.sln b/JiShe.CollectBus.Main.sln index 0a775b2..46d2db3 100644 --- a/JiShe.CollectBus.Main.sln +++ b/JiShe.CollectBus.Main.sln @@ -58,6 +58,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0.Docs", "0.Docs", "{D8346C NuGet.Config = NuGet.Config PackageAndPublish.bat = PackageAndPublish.bat readme.md = readme.md + Temp.Dockerfile = Temp.Dockerfile EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.CollectBus.Analyzers.Shared", "shared\JiShe.CollectBus.Analyzers.Shared\JiShe.CollectBus.Analyzers.Shared.csproj", "{DD68F314-BC66-5601-B094-B1A7BE93F4E0}" diff --git a/Temp.Dockerfile b/Temp.Dockerfile new file mode 100644 index 0000000..a8f5003 --- /dev/null +++ b/Temp.Dockerfile @@ -0,0 +1,52 @@ +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 +ENV TZ=Asia/Shanghai +ENV ASPNETCORE_ENVIRONMENT=Production + +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +# WORKDIR /src +COPY ["JiShe.CollectBus.Main.sln", "."] +COPY ["common.props", "."] +COPY ["NuGet.Config", "."] +COPY ["web/", "web/"] +COPY ["modules/", "modules/"] +COPY ["services/", "services/"] +COPY ["shared/", "shared/"] +COPY ["protocols/", "protocols/"] + +# 恢复项目依赖 +RUN dotnet restore "JiShe.CollectBus.Main.sln" + +# 构建项目 +WORKDIR "/web/JiShe.CollectBus.Host" +RUN dotnet build "JiShe.CollectBus.Host.csproj" -c Release -o /app/build + +# 发布项目 +FROM build AS publish +RUN dotnet publish "JiShe.CollectBus.Host.csproj" -c Release -o /app/publish /p:UseAppHost=false + +# 创建最终镜像 +FROM base AS final + +WORKDIR /app + +# 创建Plugins目录 +RUN mkdir -p /app/Plugins + +# 复制发布内容 +COPY --from=publish /app/publish . + +# 健康检查 +HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ + CMD curl -f http://localhost:80/health || exit 1 + +# 设置入口点 +ENTRYPOINT ["dotnet", "JiShe.CollectBus.Host.dll"] + +# 启动命令 +# 可选:添加命令行参数 +# CMD ["--urls", "http://+:80"] + +