В этой статье описывается создание образов контейнеров с использованием Jenkins и podman без рута, работающего на Openshift.
Вы должны работать в качестве администратора кластера, поскольку для этого требуется добавить настраиваемое ограничение контекста безопасности (SCC).
Предположения
В этой статье предполагается, что вы знакомы с:
- Сборка образов и отправка в реестр
- Развертывание модулей в Kubernetes/OpenShift и использование oc/kubectl
- Ограничения контекста безопасности Openshift (SCC)
- Развертывание 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
Для более подробного объяснения: