詹金斯和ECS的CI / CD

时间:2018-07-05 14:17:40

标签: amazon-web-services docker jenkins amazon-ecs

我正在尝试在aws上设置jenkins,以便无论何时有新的构建,它都会在ECS中为我的项目创建一个新的docker容器。我已经尝试过这些链接-

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上:Post

我搜索了该错误,并询问我是否授予jenkins用户访问Docker组的权限,但是我的docker位于没有jenkins用户的ECS集群中。如果我在正确的道路上,我会感到困惑。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  

任何帮助将不胜感激。

我相信您遇到的错误来自Jenkins,不允许其在Jenkins EC2实例上运行docker。默认情况下,未为Jenkins用户分配安全策略外壳访问权限。为了检查这一点,您必须在Jenkins中启用外壳程序使用,然后切换到它,如果执行docker info,应该会遇到相同的错误。

如何规避取决于詹金斯盒子上使用的操作系统,但有一些想法:

  • 将jenkins用户添加到docker组:在post installation process中,对于Linux的docker,据说您需要手动将要使用docker的任何用户放置到docker group中。在这种情况下,它将是:

    sudo usermod -aG docker jenkins
    
  • 指示Docker使用jenkins grop :如果您使用的是基于Debian的发行版,则可以在文件/etc/default/docker中配置其他Docker选项:

    DOCKER_OPTS=' -G jenkins'
    
  • 授予jenkins用户sudo特权:对于明显的安全问题,它是最不推荐的,但在此仅作为快速/不安全的解决方法列出。