从Jenkins Docker容器中旋转Docker / ECS容器

时间:2018-11-05 05:00:03

标签: docker jenkins jenkins-pipeline amazon-ecs

我在只有一个EC2实例的AWS ECS集群上使用Jenkins Docker Image设置了Jenkins。

初始设置后,我尝试运行Jenkins文档中的hello-world pipeline。我看到我收到“泊坞窗:找不到”

我了解这是因为未在Jenkins Docker容器中安装Docker且该容器可用。但是,对于是否应该继续在运行的Jenkins Docker容器中安装Docker(将其用作基础映像),我有一个基本的问题。经过研究,我发现了这个blog post和这个SO Answer

我想遵循这些建议,并尝试将卷/usr/bin/docker和套接字/var/run/docker.sock从主机EC2 / ECS实例安装到Jenkins容器。此后,当我运行docker version命令测试安装程序时,我遇到了Linux库问题-docker: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory,这表明安装程序运行不正常。

这是我的问题-

  1. 在基于Docker容器运行Jenkins时如何运行使用Docker容器的Jenkins管道?我希望能够拉/构建/运行Docker容器,例如-运行上面引用的hello-world管道示例?

我的最终目标是创建两种执行以下任务的詹金斯工作-

Jenkins工作类型1

  1. 从BitBucket云中检出存储库
  2. 运行shell脚本为Java项目构建docker映像(可能使用maven三角臂插件)
  3. 发布到AWS ECR。 (假设可以使用cloudbees plugin完成此操作)

Jenkins工作类型2

  1. 从AWS ECR中提取从作业类型1发布的图像
  2. 从图像创建一个容器(本质上运行Java应用程序)
  3. 容器本身可以与从属在同一Jenkins ECR集群上运行。但是,奴隶又应该在其中安装码头工人以从ECR拉并运行映像?

经过大量研究并没有找到答案,然后问这些问题。任何指导表示赞赏。谢谢。

1 个答案:

答案 0 :(得分:1)

我在您的帖子中搜索了docker错误并发现了this StackOverflow post

  

您必须安装 libltdl-dev 才能使一切正常运行

由于错误是相同的,因此建议您尝试一下。按照文章所述,在docker容器中安装libltdl-dev。