diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..51770b9c0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +**/*.sqlite +**/bin +**/obj diff --git "a/Homeworks/05 \320\243\320\277\320\260\320\272\320\276\320\262\320\272\320\260 \320\262 docker/src/Dockerfile" "b/Homeworks/05 \320\243\320\277\320\260\320\272\320\276\320\262\320\272\320\260 \320\262 docker/src/Dockerfile" new file mode 100644 index 000000000..5aa9bee09 --- /dev/null +++ "b/Homeworks/05 \320\243\320\277\320\260\320\272\320\276\320\262\320\272\320\260 \320\262 docker/src/Dockerfile" @@ -0,0 +1,25 @@ +# Build stage +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build + +WORKDIR /src + +COPY ["PromoCodeFactory.WebHost/PromoCodeFactory.WebHost.csproj", "PromoCodeFactory.WebHost/"] +COPY ["PromoCodeFactory.Core/PromoCodeFactory.Core.csproj", "PromoCodeFactory.Core/"] +COPY ["PromoCodeFactory.DataAccess/PromoCodeFactory.DataAccess.csproj", "PromoCodeFactory.DataAccess/"] + +RUN dotnet restore "PromoCodeFactory.WebHost/PromoCodeFactory.WebHost.csproj" + +COPY . . + +RUN dotnet publish "PromoCodeFactory.WebHost/PromoCodeFactory.WebHost.csproj" -c Release -o /app/publish + +# Runtime stage +FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime + +WORKDIR /app + +COPY --from=build /app/publish . + +EXPOSE 8080 + +ENTRYPOINT ["dotnet", "PromoCodeFactory.WebHost.dll"] diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 000000000..fa9ef9fa9 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,15 @@ +services: + promocode-factory-api: + build: + context: ./Homeworks/05 Упаковка в docker/src + dockerfile: Dockerfile + ports: + - "8091:8080" + environment: + - ASPNETCORE_ENVIRONMENT=Development + - ConnectionStrings__PromocodeFactoryDb=Data Source=/app/db/PromoCodeFactoryDb.sqlite + volumes: + - db:/app/db + +volumes: + db: \ No newline at end of file