В этой статье описывается создание образов контейнеров с использованием Jenkins и podman без рута, работающего на Openshift.

Вы должны работать в качестве администратора кластера, поскольку для этого требуется добавить настраиваемое ограничение контекста безопасности (SCC).

Предположения

В этой статье предполагается, что вы знакомы с:

  1. Сборка образов и отправка в реестр
  2. Развертывание модулей в Kubernetes/OpenShift и использование oc/kubectl
  3. Ограничения контекста безопасности Openshift (SCC)
  4. Развертывание Jenkins/Создание пайплайнов Jenkins

Строитель

Первый шаг — создать образ билдера (на диаграмме podman-builder) с помощью podman. Дженкинс будет использовать этот образ для создания других образов контейнеров.

Обратите внимание, что пользователь podman в контейнере имеет UID 1001. Это важно при создании SCC.

ССС

Затем мы должны создать пользовательский SCC, чтобы наш контейнер Builder мог запускать podman в режиме без рута и работать от имени пользователя 1001.

Сервисный аккаунт и привязка

Создайте учетную запись службы nonrootbuilder-sa и разрешите ей использовать SCC.

Запустить его!

С этой настройкой создайте конвейер в Jenkins, чтобы использовать наш образ компоновщика и создавать контейнеры.

podman build -f Dockerfile -t mycoolcontainer -format=docker .
podman push mycoolcontainer

Просмотреть образец Jenkinsfile

Для более подробного объяснения: