Я пишу конвейер Jenkins, предназначенный для извлечения образа docker из частного реестра. В настоящий момент у меня есть проблема с запуском команды docker pull
, поскольку она не запускается при запуске из Jenkins.
В настоящее время конвейер Jenkins работает следующим образом:
- принимает набор параметров от пользователя (например, имя и тег изображения)
- запускает отдельный сценарий bash, выполняющий операцию извлечения.
Сценарий bash выполняет две операции:
Команда входа успешна, в то время как команда pull отвечает:
Error response from daemon: access denied:
no access to Image Load, on collection swarm
На первый взгляд, я думаю, что это вопрос привилегий пользователя, но запуск сценария bash вне контекста Jenkins ( как владелец процесса Дженкинса) это работает.
Мне не хватает какой-либо конфигурации? В качестве альтернативы я попытался реализовать конвейер Jenkins с помощью Docker Jenkins Plugin API, но он тоже не удался.
Заключительное примечание
Владелец процесса Jenkins отличается от пользователя, заходящего в Docker приватный реестр. Может ли это повлиять на поведение?
Операционная система :
macOS 10.14.6
Docker Сведения о версии :
Client: Docker Engine - Community
Version: 19.03.4
API version: 1.40
Go version: go1.12.10
Git commit: 9013bf5
Built: Thu Oct 17 23:44:48 2019
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.4
API version: 1.40 (minimum version 1.12)
Go version: go1.12.10
Git commit: 9013bf5
Built: Thu Oct 17 23:50:38 2019
OS/Arch: linux/amd64