stages: - prepare - build variables: DOCKER_TAG: "my-app:latest" CONFIG_ENV: "Development" # можно использовать для генерации appsettings.{ENV}.json prepare: stage: prepare script: # Генерация Dockerfile - | cat < Dockerfile 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 . . RUN dotnet restore RUN dotnet publish -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=build /app/publish . ENTRYPOINT ["dotnet", "MyApp.dll"] EOF # Генерация nuget.config - | cat < nuget.config EOF # Генерация appsettings.json - | cat < appsettings.json { "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "Environment": "$CONFIG_ENV" } EOF artifacts: paths: - Dockerfile - nuget.config - appsettings.json expire_in: 1 hour build: stage: build script: - docker build -t $DOCKER_TAG .