From 4646a67e15c78b30121770fe9eedfe3a1ec98782 Mon Sep 17 00:00:00 2001 From: zpc Date: Mon, 19 Jan 2026 00:13:22 +0800 Subject: [PATCH] docker --- server/HoneyBox/.dockerignore | 30 ++++++++++++++++ server/HoneyBox/src/HoneyBox.Admin/Dockerfile | 34 +++++++++++++++++++ .../src/HoneyBox.Admin/HoneyBox.Admin.csproj | 4 +++ .../Properties/launchSettings.json | 11 ++++++ server/HoneyBox/src/HoneyBox.Api/Dockerfile | 32 +++++++++++++++++ .../src/HoneyBox.Api/HoneyBox.Api.csproj | 3 ++ .../Properties/launchSettings.json | 24 ++++++++----- 7 files changed, 130 insertions(+), 8 deletions(-) create mode 100644 server/HoneyBox/.dockerignore create mode 100644 server/HoneyBox/src/HoneyBox.Admin/Dockerfile create mode 100644 server/HoneyBox/src/HoneyBox.Api/Dockerfile diff --git a/server/HoneyBox/.dockerignore b/server/HoneyBox/.dockerignore new file mode 100644 index 00000000..fe1152bd --- /dev/null +++ b/server/HoneyBox/.dockerignore @@ -0,0 +1,30 @@ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md +!**/.gitignore +!.git/HEAD +!.git/config +!.git/packed-refs +!.git/refs/heads/** \ No newline at end of file diff --git a/server/HoneyBox/src/HoneyBox.Admin/Dockerfile b/server/HoneyBox/src/HoneyBox.Admin/Dockerfile new file mode 100644 index 00000000..ddb2bffe --- /dev/null +++ b/server/HoneyBox/src/HoneyBox.Admin/Dockerfile @@ -0,0 +1,34 @@ +# 请参阅 https://aka.ms/customizecontainer 以了解如何自定义调试容器,以及 Visual Studio 如何使用此 Dockerfile 生成映像以更快地进行调试。 + +# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时 +FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble AS base +USER $APP_UID +WORKDIR /app +EXPOSE 8080 +EXPOSE 8081 + + +# 此阶段用于生成服务项目 +FROM mcr.microsoft.com/dotnet/sdk:10.0-noble AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["src/HoneyBox.Admin/HoneyBox.Admin.csproj", "src/HoneyBox.Admin/"] +COPY ["src/HoneyBox.Admin.Business/HoneyBox.Admin.Business.csproj", "src/HoneyBox.Admin.Business/"] +COPY ["src/HoneyBox.Model/HoneyBox.Model.csproj", "src/HoneyBox.Model/"] +COPY ["src/HoneyBox.Core/HoneyBox.Core.csproj", "src/HoneyBox.Core/"] +COPY ["src/HoneyBox.Infrastructure/HoneyBox.Infrastructure.csproj", "src/HoneyBox.Infrastructure/"] +RUN dotnet restore "./src/HoneyBox.Admin/HoneyBox.Admin.csproj" +COPY . . +WORKDIR "/src/src/HoneyBox.Admin" +RUN dotnet build "./HoneyBox.Admin.csproj" -c $BUILD_CONFIGURATION -o /app/build + +# 此阶段用于发布要复制到最终阶段的服务项目 +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./HoneyBox.Admin.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# 此阶段在生产中使用,或在常规模式下从 VS 运行时使用(在不使用调试配置时为默认值) +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "HoneyBox.Admin.dll"] \ No newline at end of file diff --git a/server/HoneyBox/src/HoneyBox.Admin/HoneyBox.Admin.csproj b/server/HoneyBox/src/HoneyBox.Admin/HoneyBox.Admin.csproj index cf8b767a..3b430edf 100644 --- a/server/HoneyBox/src/HoneyBox.Admin/HoneyBox.Admin.csproj +++ b/server/HoneyBox/src/HoneyBox.Admin/HoneyBox.Admin.csproj @@ -6,6 +6,9 @@ enable true $(NoWarn);1591 + afd60d1a-3d02-4903-a2e4-fe51437b5c41 + Linux + ..\.. @@ -27,6 +30,7 @@ + diff --git a/server/HoneyBox/src/HoneyBox.Admin/Properties/launchSettings.json b/server/HoneyBox/src/HoneyBox.Admin/Properties/launchSettings.json index ff8c12f3..fa81faee 100644 --- a/server/HoneyBox/src/HoneyBox.Admin/Properties/launchSettings.json +++ b/server/HoneyBox/src/HoneyBox.Admin/Properties/launchSettings.json @@ -7,6 +7,17 @@ "ASPNETCORE_ENVIRONMENT": "Development" }, "applicationUrl": "https://localhost:61550;http://localhost:61551" + }, + "Container (Dockerfile)": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", + "environmentVariables": { + "ASPNETCORE_HTTPS_PORTS": "8081", + "ASPNETCORE_HTTP_PORTS": "8080" + }, + "publishAllPorts": true, + "useSSL": true } } } \ No newline at end of file diff --git a/server/HoneyBox/src/HoneyBox.Api/Dockerfile b/server/HoneyBox/src/HoneyBox.Api/Dockerfile new file mode 100644 index 00000000..43a639d5 --- /dev/null +++ b/server/HoneyBox/src/HoneyBox.Api/Dockerfile @@ -0,0 +1,32 @@ +# 请参阅 https://aka.ms/customizecontainer 以了解如何自定义调试容器,以及 Visual Studio 如何使用此 Dockerfile 生成映像以更快地进行调试。 + +# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时 +FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble AS base +USER $APP_UID +WORKDIR /app +EXPOSE 8080 + + +# 此阶段用于生成服务项目 +FROM mcr.microsoft.com/dotnet/sdk:10.0-noble AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["src/HoneyBox.Api/HoneyBox.Api.csproj", "src/HoneyBox.Api/"] +COPY ["src/HoneyBox.Model/HoneyBox.Model.csproj", "src/HoneyBox.Model/"] +COPY ["src/HoneyBox.Core/HoneyBox.Core.csproj", "src/HoneyBox.Core/"] +COPY ["src/HoneyBox.Infrastructure/HoneyBox.Infrastructure.csproj", "src/HoneyBox.Infrastructure/"] +RUN dotnet restore "./src/HoneyBox.Api/HoneyBox.Api.csproj" +COPY . . +WORKDIR "/src/src/HoneyBox.Api" +RUN dotnet build "./HoneyBox.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build + +# 此阶段用于发布要复制到最终阶段的服务项目 +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./HoneyBox.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# 此阶段在生产中使用,或在常规模式下从 VS 运行时使用(在不使用调试配置时为默认值) +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "HoneyBox.Api.dll"] \ No newline at end of file diff --git a/server/HoneyBox/src/HoneyBox.Api/HoneyBox.Api.csproj b/server/HoneyBox/src/HoneyBox.Api/HoneyBox.Api.csproj index 2d5f90e1..9d149890 100644 --- a/server/HoneyBox/src/HoneyBox.Api/HoneyBox.Api.csproj +++ b/server/HoneyBox/src/HoneyBox.Api/HoneyBox.Api.csproj @@ -6,12 +6,15 @@ enable true $(NoWarn);1591 + Linux + ..\.. + diff --git a/server/HoneyBox/src/HoneyBox.Api/Properties/launchSettings.json b/server/HoneyBox/src/HoneyBox.Api/Properties/launchSettings.json index 3db0cce1..0d69c65b 100644 --- a/server/HoneyBox/src/HoneyBox.Api/Properties/launchSettings.json +++ b/server/HoneyBox/src/HoneyBox.Api/Properties/launchSettings.json @@ -1,14 +1,22 @@ -{ - "$schema": "https://json.schemastore.org/launchsettings.json", +{ "profiles": { "http": { "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": false, - "applicationUrl": "http://localhost:5238", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" - } + }, + "dotnetRunMessages": true, + "applicationUrl": "http://localhost:5238" + }, + "Container (Dockerfile)": { + "commandName": "Docker", + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", + "environmentVariables": { + "ASPNETCORE_HTTP_PORTS": "8080" + }, + "publishAllPorts": true, + "useSSL": false } - } -} + }, + "$schema": "https://json.schemastore.org/launchsettings.json" +} \ No newline at end of file