# Docker часть 1 Что нужно сделать: 1. Написать Dockerfile, который позволит собрать образ для запуска вашего проекта. *Очевидно что в докерфайле будут примерно следующие шаги: Подходящий базовый образ Подготовка окружения Копирование файлов сборки в образ Старт сервера - главный процесс контейнера 2*. Локально протестируйте, что сборка проходит успешно. Локально протестируйте, что запуск контейнера приводит к запуску сервера. Проверьте, что при запущенном контейнере при попытке отправить запрос в контйнеризованный сервер получается увидеть ответ. 3. Сделайте коммит Dockerfile-а в ваш gitlab репозиторий 4. Напишите новую джобу (давайте называть ее: build-docker), которая будет проводить сборку вашего проекта в docker-образ Что показать ментору: 1. Dockerfile в вашем репозитории 2. gitlab-ci.yaml в вашем репозитории, в котором появилась новая джоба build-docker, способная собрать ваш проект в docker образ с помощью Dockerfile из первого пункта # Ответы ``` FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build WORKDIR /src COPY ["Convertet C-F/Convertet_C-F.csproj", "Convertet C-F/"] RUN dotnet restore "Convertet C-F/Convertet_C-F.csproj" COPY . . WORKDIR "/src/Convertet C-F" RUN dotnet build "Convertet_C-F.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "Convertet_C-F.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "Convertet_C-F.dll"] ``` .gitlab-ci.yml ``` stages: - test - build-docker Test: stage: test script: - ls -la - if [ -f ./docker-compose.yml -a -f ./Convertet_C-F.sln ]; then echo "ok"; else false; fi; tags: - "dev" build-docker: stage: build-docker script: - docker build -f ./Convertet_C-F/Dockerfile -t tamplate_project . tags: - "dev" allow_failure: false ``` ![](https://i.imgur.com/o5rSMIi.png)