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"] + +