From c3dd68576d6127ad1ccb4b022b62d6b696a63fd1 Mon Sep 17 00:00:00 2001 From: Andrei Tudor Date: Fri, 30 May 2025 18:24:47 +0300 Subject: [PATCH] Added docker compose to build the project --- .gitignore | 3 ++- WebUI/Dockerfile | 33 +++++++++++++++++++++++++++++++++ WebUI/WebUI.csproj | 7 +++++++ docker-compose.yml | 26 ++++++-------------------- 4 files changed, 48 insertions(+), 21 deletions(-) create mode 100644 WebUI/Dockerfile diff --git a/.gitignore b/.gitignore index 23dd2bd..ef93686 100644 --- a/.gitignore +++ b/.gitignore @@ -458,4 +458,5 @@ $RECYCLE.BIN/ /WebUI/Data /WebUI_Old/Data /WebUI/bin -/WebUI_Old/bin \ No newline at end of file +/WebUI_Old/bin +Data/ \ No newline at end of file diff --git a/WebUI/Dockerfile b/WebUI/Dockerfile new file mode 100644 index 0000000..5c42919 --- /dev/null +++ b/WebUI/Dockerfile @@ -0,0 +1,33 @@ +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +USER $APP_UID +WORKDIR /app +EXPOSE 8080 +EXPOSE 8081 + +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["WebUI/WebUI.csproj", "WebUI/"] +COPY ["DiscordBotCore.Configuration/DiscordBotCore.Configuration.csproj", "DiscordBotCore.Configuration/"] +COPY ["DiscordBotCore.Logging/DiscordBotCore.Logging.csproj", "DiscordBotCore.Logging/"] +COPY ["DiscordBotCore.Database.Sqlite/DiscordBotCore.Database.Sqlite.csproj", "DiscordBotCore.Database.Sqlite/"] +COPY ["DiscordBotCore.PluginManagement/DiscordBotCore.PluginManagement.csproj", "DiscordBotCore.PluginManagement/"] +COPY ["DiscordBotCore.Networking/DiscordBotCore.Networking.csproj", "DiscordBotCore.Networking/"] +COPY ["DiscordBotCore.Utilities/DiscordBotCore.Utilities.csproj", "DiscordBotCore.Utilities/"] +COPY ["DiscordBotCore/DiscordBotCore.csproj", "DiscordBotCore/"] +COPY ["DiscordBotCore.PluginCore/DiscordBotCore.PluginCore.csproj", "DiscordBotCore.PluginCore/"] +COPY ["DiscordBotCore.PluginManagement.Loading/DiscordBotCore.PluginManagement.Loading.csproj", "DiscordBotCore.PluginManagement.Loading/"] +RUN dotnet restore "WebUI/WebUI.csproj" +COPY . . +WORKDIR "/src/WebUI" +RUN dotnet build "./WebUI.csproj" -c $BUILD_CONFIGURATION -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./WebUI.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM base AS final +EXPOSE 8080 +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "WebUI.dll"] diff --git a/WebUI/WebUI.csproj b/WebUI/WebUI.csproj index 7bdbea9..f4e7373 100644 --- a/WebUI/WebUI.csproj +++ b/WebUI/WebUI.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + Linux @@ -15,4 +16,10 @@ + + + .dockerignore + + + diff --git a/docker-compose.yml b/docker-compose.yml index 0a881bb..5383f35 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,24 +1,10 @@ -services: -# discord-bot-client: -# build: -# context: ./DiscordBot -# dockerfile: Dockerfile -# tty: true -# stdin_open: true - - discord-bot-webui: +name: Seth Docker Build +services: + discord-bot: build: context: ./WebUI dockerfile: Dockerfile ports: - - '4444:8080' - - -networks: - custom_bridge: - driver: bridge - ipam: - driver: default - config: - - subnet: "172.20.100.0/24" - gateway: "172.20.100.1" \ No newline at end of file + - "8080:8080" + volumes: + - ./Data:/app/Data \ No newline at end of file