День 3, задание (расширенная настройка pipeline, автоматическая сборка docker)

Создать pipeline и добавить сборку проекта. Сделайте авто-сборку и выкладку образа, который вы настраивали в первый день.

Последовательность выполнения задания.

  1. Создайте группу и проект внутри группы на сайте gitlab.com
  2. ВАЖНО: Добавьте в group members аккаунт devsecops_service с правами maintainer (меню manage => members => invite_members) Иначе проверяющий не сможет проверить выполнение задания img.png
  3. Предварительно необходимо настроить gitlab-runner в контейнере докер на своем компьютере и привязать его к проекту. Если вы еще этого не делали, сделайте согласно инструкции.
  4. Настраиваем pipeline, создав .gitlab-ci.yml в ветке main. Добавьте в pipeline 3 этапа (stages): build, test, deploy и 3 задания (jobs): build_job, test_job, deploy_job Они должны запускаться последовательно в этом порядке.
  5. Настройте cache так, чтобы файл README, созданный на этапе build, был доступен так же в test и deploy. Сделайте на этапах build и test запись текстового сообщения в этот файл README (на каждом этапе build, test – добавлялось свое сообщение, которое в том числе содержало бы название этапа)
  6. На этапе deploy (deploy job), необходимо сделать сборку приложения при помощи образа docker:20.10.16 и службы docker:20.10.16-dind. Соберите ваше приложение в контейнер и сделайте автоматический push на docker hub вашего образа.
  7. Модифицируйте Dockerfile для образа так, чтобы файл README созданный в процессе pipeline, копировался внутрб контейнера при сборке.
  8. Модифицируйте точку входа при запуске контейнера так, чтобы на экран выводилось содержимое файла README, созданного в процессе сборки контейнера.

Проверьте, что ваше приложение успешно выложено в docker hub с тегом day3.

Попробуйте запустить его с помощью docker run так, чтобы образ подтягивался из docker hub

(например, docker run MYAPP:day3)

В ответ на задание привести ссылку на pipeline с успешной сборкой приложения, а также полную команду на запуск вашего приложения в контейнере (docker run …).

Так же привести ссылку на docker hub репозиторий (должен быть доступен тег: day3).

После выполнения задания, ответ загрузите в анкету