CI / CD с Дженкинсом и ECS - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь настроить jenkins на aws таким образом, чтобы при появлении новой сборки он создавал новый докер-контейнер моего проекта в ECS. Я пробовал эти ссылки -

https://medium.com/@sachin.arote1/deploy-docker-containers-on-aws-ecs-cluster-via-jenkins-605eee0d22b0

https://docs.aws.amazon.com/AWSGettingStartedContinuousDeliveryPipeline/latest/GettingStarted/CICD_Jenkins_Pipeline.html

Моя машина Jenkins является экземпляром EC2 и не входит в кластер ECS. Я настроил свой конвейер, как предложено в ссылках, но я получаю сообщение об ошибке -

Получено разрешение при попытке подключиться к демону Docker сокет в unix: ///var/run/docker.sock: сообщение

Я погуглил об ошибке и попросил предоставить пользователю jenkins доступ к группе Docker, но мой докер находится в кластере ECS, где нет пользователя jenkins. Я немного запутался, если даже нахожусь здесь на правильном пути. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 05 июля 2018

Любая помощь будет оценена.

Я полагаю, что ваша ошибка связана с тем, что Jenkins не разрешено запускать docker на экземпляре Jenkins EC2. По умолчанию политика безопасности пользователя Jenkins не имеет доступа к оболочке. Чтобы проверить это, вы должны включить использование оболочки из Jenkins, затем переключитесь на нее, и если вы выполните docker info, вас встретит та же ошибка.

Способ обхода зависит от операционной системы, используемой на коробке Jenkins, но некоторые идеи:

  • Добавление пользователя jenkins в группу Docker : В после установки для Docker для Linux сказано, что вам нужно вручную поместить любого пользователя, которого вы хотите использовать в Docker. Докерская группа. В этом случае это будет:

    sudo usermod -aG docker jenkins
    
  • Поручить Docker использовать jenkins grop : Если вы используете дистрибутив на основе Debian, то в файле /etc/default/docker вы можете настроить дополнительные опции докера:

    DOCKER_OPTS=' -G jenkins'
    
  • Предоставить пользователю jenkins привилегию sudo : наименее предпочтителен для очевидных проблем безопасности, но указан здесь просто как быстрое / небезопасное исправление.

...