diff --git a/WebApp/Dockerfile b/WebApp/Dockerfile new file mode 100644 index 0000000..37d201c --- /dev/null +++ b/WebApp/Dockerfile @@ -0,0 +1,32 @@ +# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. + +# This stage is used when running from VS in fast mode (Default for Debug configuration) +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base +USER $APP_UID +WORKDIR /app +EXPOSE 8080 +EXPOSE 8081 + + +# This stage is used to build the service project +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["WebApp/WebApp.csproj", "WebApp/"] +COPY ["Core/Core.csproj", "Core/"] +COPY ["Data/Data.csproj", "Data/"] +RUN dotnet restore "./WebApp/WebApp.csproj" +COPY . . +WORKDIR "/src/WebApp" +RUN dotnet build "./WebApp.csproj" -c $BUILD_CONFIGURATION -o /app/build + +# This stage is used to publish the service project to be copied to the final stage +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./WebApp.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration) +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "WebApp.dll"] \ No newline at end of file diff --git a/WebApp/Properties/launchSettings.json b/WebApp/Properties/launchSettings.json index 2c1a213..c451f24 100644 --- a/WebApp/Properties/launchSettings.json +++ b/WebApp/Properties/launchSettings.json @@ -44,6 +44,17 @@ }, "dotnetRunMessages": true, "applicationUrl": "https://localhost:7235;http://localhost:5013" + }, + "Container (Dockerfile)": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", + "environmentVariables": { + "ASPNETCORE_HTTPS_PORTS": "8081", + "ASPNETCORE_HTTP_PORTS": "8080" + }, + "publishAllPorts": true, + "useSSL": true } }, "$schema": "http://json.schemastore.org/launchsettings.json", diff --git a/WebApp/WebApp.csproj b/WebApp/WebApp.csproj index 130d28b..a36a891 100644 --- a/WebApp/WebApp.csproj +++ b/WebApp/WebApp.csproj @@ -4,6 +4,8 @@ net9.0 enable enable + 73972335-ec46-4ad6-a959-8ebe0b06147d + Linux @@ -18,6 +20,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive +