From 0a5905759061311207385d13259a9236772be22d Mon Sep 17 00:00:00 2001 From: yiyun Date: Wed, 13 Apr 2022 19:42:55 +0800 Subject: [PATCH] feat: vs add: docker-compose --- .dockerignore | 25 +++++++++++++++++++ QQBotHub.sln | 8 +++++- docker-compose.dcproj | 18 +++++++++++++ docker-compose.override.yml | 8 ++++++ docker-compose.yml | 8 ++++++ src/QQBotHub.Web/Dockerfile | 21 ++++++++++++++++ .../Properties/launchSettings.json | 16 ++++++++---- src/QQBotHub.Web/QQBotHub.Web.csproj | 4 +++ 8 files changed, 102 insertions(+), 6 deletions(-) create mode 100644 .dockerignore create mode 100644 docker-compose.dcproj create mode 100644 docker-compose.override.yml create mode 100644 docker-compose.yml create mode 100644 src/QQBotHub.Web/Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..3729ff0cd --- /dev/null +++ b/.dockerignore @@ -0,0 +1,25 @@ +**/.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 \ No newline at end of file diff --git a/QQBotHub.sln b/QQBotHub.sln index d4cac97c7..c2caa0273 100644 --- a/QQBotHub.sln +++ b/QQBotHub.sln @@ -7,7 +7,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BDFD03E4-0A9 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QQBotPlugin", "src\QQBotPlugin\QQBotPlugin.csproj", "{1A6CAD95-2DED-42C0-BA8E-C8BA31E6AE74}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QQBotHub.Web", "src\QQBotHub.Web\QQBotHub.Web.csproj", "{30B29087-4E84-4C67-BE3A-1CA8AB47B416}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QQBotHub.Web", "src\QQBotHub.Web\QQBotHub.Web.csproj", "{30B29087-4E84-4C67-BE3A-1CA8AB47B416}" +EndProject +Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{E4815DEC-037C-4781-900A-6D8005A2F33B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -23,6 +25,10 @@ Global {30B29087-4E84-4C67-BE3A-1CA8AB47B416}.Debug|Any CPU.Build.0 = Debug|Any CPU {30B29087-4E84-4C67-BE3A-1CA8AB47B416}.Release|Any CPU.ActiveCfg = Release|Any CPU {30B29087-4E84-4C67-BE3A-1CA8AB47B416}.Release|Any CPU.Build.0 = Release|Any CPU + {E4815DEC-037C-4781-900A-6D8005A2F33B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4815DEC-037C-4781-900A-6D8005A2F33B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4815DEC-037C-4781-900A-6D8005A2F33B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4815DEC-037C-4781-900A-6D8005A2F33B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/docker-compose.dcproj b/docker-compose.dcproj new file mode 100644 index 000000000..ab4d144d1 --- /dev/null +++ b/docker-compose.dcproj @@ -0,0 +1,18 @@ + + + + 2.1 + Linux + e4815dec-037c-4781-900a-6d8005a2f33b + LaunchBrowser + {Scheme}://localhost:{ServicePort}/swagger + qqbothub.web + + + + docker-compose.yml + + + + + \ No newline at end of file diff --git a/docker-compose.override.yml b/docker-compose.override.yml new file mode 100644 index 000000000..9769ab75b --- /dev/null +++ b/docker-compose.override.yml @@ -0,0 +1,8 @@ +version: '3.4' + +services: + qqbothub.web: + environment: + - ASPNETCORE_ENVIRONMENT=Development + ports: + - "80" diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..0ba7ea3b4 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3.4' + +services: + qqbothub.web: + image: ${DOCKER_REGISTRY-}qqbothubweb + build: + context: . + dockerfile: src/QQBotHub.Web/Dockerfile diff --git a/src/QQBotHub.Web/Dockerfile b/src/QQBotHub.Web/Dockerfile new file mode 100644 index 000000000..ef5f15dea --- /dev/null +++ b/src/QQBotHub.Web/Dockerfile @@ -0,0 +1,21 @@ +#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. + +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src +COPY ["src/QQBotHub.Web/QQBotHub.Web.csproj", "src/QQBotHub.Web/"] +RUN dotnet restore "src/QQBotHub.Web/QQBotHub.Web.csproj" +COPY . . +WORKDIR "/src/src/QQBotHub.Web" +RUN dotnet build "QQBotHub.Web.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "QQBotHub.Web.csproj" -c Release -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "QQBotHub.Web.dll"] diff --git a/src/QQBotHub.Web/Properties/launchSettings.json b/src/QQBotHub.Web/Properties/launchSettings.json index af9dd0906..48faea647 100644 --- a/src/QQBotHub.Web/Properties/launchSettings.json +++ b/src/QQBotHub.Web/Properties/launchSettings.json @@ -1,4 +1,4 @@ -{ +{ "$schema": "https://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, @@ -11,13 +11,13 @@ "profiles": { "QQBot.Web": { "commandName": "Project", - "dotnetRunMessages": true, "launchBrowser": true, "launchUrl": "swagger", - "applicationUrl": "http://localhost:5193", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" - } + }, + "applicationUrl": "http://localhost:5193", + "dotnetRunMessages": true }, "IIS Express": { "commandName": "IISExpress", @@ -26,6 +26,12 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } + }, + "Docker": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger", + "publishAllPorts": true } } -} +} \ No newline at end of file diff --git a/src/QQBotHub.Web/QQBotHub.Web.csproj b/src/QQBotHub.Web/QQBotHub.Web.csproj index db20083df..a4b94bd10 100644 --- a/src/QQBotHub.Web/QQBotHub.Web.csproj +++ b/src/QQBotHub.Web/QQBotHub.Web.csproj @@ -5,10 +5,14 @@ enable enable True + ..\..\docker-compose.dcproj + Linux + ..\.. +