Вы добавили группу докеров к пользователю Jenkins внутри контейнера.Однако это не обязательно сработает, поскольку отображение пользователей и групп на uid и gids может быть различным для хоста и контейнера.Обычно это не проблема, но с томами хоста и другими подключаемыми монтируемыми файлами в контейнере файлы отображаются с тем же uid / gid вместе с разрешениями.Следовательно, внутри контейнера группа докеров не будет иметь доступа к сокету док-станции, если gid не окажется идентичным в двух средах.
Существует несколько решений, включая ручную передачу хоста в качестве gid дляиспользовать внутри контейнера.Или вы можете получить gid хоста и создать образ с жестко запрограммированным значением.
Мое предпочтительное решение состоит в том, чтобы запустить точку входа как root, исправить группу docker внутри контейнера, чтобы соответствовать gidсмонтированный сокет докера, а затем переключитесь на пользователя Jenkins для запуска приложения.Это особенно хорошо работает в средах разработки, где управление uid / gids может быть затруднено.Все шаги / сценарии для этого находятся в моем репо: https://github.com/sudo-bmitch/jenkins-docker
Для производства в контролируемой среде я пытаюсь получить стандартизированные значения uid / gid, как на хосте, так и в контейнерах, для всего, что монтируетсяхост томов.Затем я могу запустить контейнер без шагов корневой точки входа.