From 0337962303b48caf9d8a803e4ff1103a7d3b2955 Mon Sep 17 00:00:00 2001 From: Mikhail Shabanov Date: Tue, 5 Jan 2021 16:56:12 +0100 Subject: [PATCH] Docker compose ready --- .dockerignore | 25 +++++++++++++++++++++++++ .env.template | 6 ++++++ .gitignore | 3 +++ Dockerfile | 26 ++++++++++++++++++++++++++ docker-compose.yml | 28 ++++++++++++++++++++++++++++ 5 files changed, 88 insertions(+) create mode 100644 .dockerignore create mode 100644 .env.template create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3729ff0 --- /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/.env.template b/.env.template new file mode 100644 index 0000000..734e272 --- /dev/null +++ b/.env.template @@ -0,0 +1,6 @@ +#ToDo: replace the values to real data, and then rename this file to '.env' +WARGAMING_APPLICATION_ID=[Demo] +MONGO_CONNECTION_STRING=mongodb://[your_username]:[your_password]:27017/?authSource=admin +MONGO_DATABASE_NAME=[database_name] +DB_USERNAME=[your_username] +DB_PASSWORD=[your_password] \ No newline at end of file diff --git a/.gitignore b/.gitignore index dfcfd56..10561af 100644 --- a/.gitignore +++ b/.gitignore @@ -348,3 +348,6 @@ MigrationBackup/ # Ionide (cross platform F# VS Code tools) working folder .ionide/ + +#Environment file +.env diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9a50b5c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +#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:5.0-buster-slim AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build +WORKDIR /src +COPY ["WotBlitzStatisticsPro.GraphQl/WotBlitzStatisticsPro.GraphQl.csproj", "WotBlitzStatisticsPro.GraphQl/"] +COPY ["WotBlitzStatisticsPro.Logic/WotBlitzStatisticsPro.Logic.csproj", "WotBlitzStatisticsPro.Logic/"] +COPY ["WotBlitzStatisticsPro.DataAccess/WotBlitzStatisticsPro.DataAccess.csproj", "WotBlitzStatisticsPro.DataAccess/"] +COPY ["WotBlitzStatisticsPro.Common/WotBlitzStatisticsPro.Common.csproj", "WotBlitzStatisticsPro.Common/"] +COPY ["WotBlitzStatisticsPro.WgApiClient/WotBlitzStatisticsPro.WgApiClient.csproj", "WotBlitzStatisticsPro.WgApiClient/"] +RUN dotnet restore "WotBlitzStatisticsPro.GraphQl/WotBlitzStatisticsPro.GraphQl.csproj" +COPY . . +WORKDIR "/src/WotBlitzStatisticsPro.GraphQl" +RUN dotnet build "WotBlitzStatisticsPro.GraphQl.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "WotBlitzStatisticsPro.GraphQl.csproj" -c Release -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "WotBlitzStatisticsPro.GraphQl.dll"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..32957e5 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,28 @@ +version: "3.9" +services: + web: + image: "mike/wot-blitz-statistics-pro:latest" + ports: + - "8000:80" + container_name: "wot-blitz-statististics-web" + environment: + - WargamingApi:ApplicationId=${WARGAMING_APPLICATION_ID} + - Mongo:ConnectionString=${MONGO_CONNECTION_STRING} + - Mongo:DatabaseName=${MONGO_DATABASE_NAME} + depends_on: + - mongo + restart: always + mongo: + image: mongo + ports: + - "27027:27017" + container_name: "wot-blitz-statistics-mongo" + restart: always + environment: + MONGO_INITDB_ROOT_USERNAME: "${DB_USERNAME}" + MONGO_INITDB_ROOT_PASSWORD: "${DB_PASSWORD}" + volumes: + - "blitz_mongodblvolume:/data/db" + +volumes: + blitz_mongodblvolume: \ No newline at end of file