2025-04-27 09:47:08 +08:00
|
|
|
# FROM mcr.microsoft.com/dotnet/aspnet:8.0
|
|
|
|
|
|
|
|
|
|
# # 创建目录
|
|
|
|
|
# RUN mkdir /app
|
|
|
|
|
|
|
|
|
|
# COPY publish /app
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# # 设置工作目录
|
|
|
|
|
# WORKDIR /app
|
|
|
|
|
|
|
|
|
|
# # 暴露80端口
|
|
|
|
|
# EXPOSE 80
|
|
|
|
|
# # 设置时区 .net6 才有这个问题
|
|
|
|
|
# ENV TZ=Asia/Shanghai
|
|
|
|
|
|
|
|
|
|
# # 设置环境变量
|
|
|
|
|
# ENV ASPNETCORE_ENVIRONMENT=Production
|
|
|
|
|
|
|
|
|
|
# ENTRYPOINT ["dotnet", "JiShe.IOT.HttpApi.Host.dll"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-04-27 11:04:31 +08:00
|
|
|
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
|
2025-04-27 09:47:08 +08:00
|
|
|
WORKDIR /app
|
|
|
|
|
EXPOSE 80
|
|
|
|
|
EXPOSE 443
|
|
|
|
|
ENV TZ=Asia/Shanghai
|
|
|
|
|
ENV ASPNETCORE_ENVIRONMENT=Production
|
|
|
|
|
|
2025-04-27 11:04:31 +08:00
|
|
|
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
2025-04-27 09:47:08 +08:00
|
|
|
WORKDIR /src
|
2025-04-27 11:04:31 +08:00
|
|
|
COPY ["JiShe.CollectBus.sln", "."]
|
|
|
|
|
COPY ["common.props", "."]
|
|
|
|
|
COPY ["NuGet.Config", "."]
|
|
|
|
|
COPY ["web/", "web/"]
|
|
|
|
|
COPY ["modules/", "modules/"]
|
|
|
|
|
COPY ["services/", "services/"]
|
|
|
|
|
COPY ["shared/", "shared/"]
|
|
|
|
|
COPY ["protocols/", "protocols/"]
|
2025-04-27 09:47:08 +08:00
|
|
|
|
2025-04-27 11:04:31 +08:00
|
|
|
# 恢复项目依赖
|
|
|
|
|
RUN dotnet restore "JiShe.CollectBus.sln"
|
|
|
|
|
|
|
|
|
|
# 构建项目
|
|
|
|
|
WORKDIR "/src/web/JiShe.CollectBus.Host"
|
|
|
|
|
RUN dotnet build "JiShe.CollectBus.Host.csproj" -c Release -o /app/build
|
|
|
|
|
|
|
|
|
|
# 发布项目
|
2025-04-27 09:47:08 +08:00
|
|
|
FROM build AS publish
|
2025-04-27 11:04:31 +08:00
|
|
|
RUN dotnet publish "JiShe.CollectBus.Host.csproj" -c Release -o /app/publish /p:UseAppHost=false
|
2025-04-27 09:47:08 +08:00
|
|
|
|
2025-04-27 11:04:31 +08:00
|
|
|
# 创建最终镜像
|
2025-04-27 09:47:08 +08:00
|
|
|
FROM base AS final
|
|
|
|
|
WORKDIR /app
|
2025-04-27 11:04:31 +08:00
|
|
|
|
|
|
|
|
# 创建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"]
|
2025-04-27 09:47:08 +08:00
|
|
|
|
|
|
|
|
|