Tag: 连续集成

是否有任何CI服务将从dockerhub拉?

我已经调查过:Travis CI,Circle CI,Drone.io,但他们似乎都想从github中拉出来。 不过,我已经从github dockerhub拉,已经正确地build立docker形象。 我也看了Jenkins,它似乎有一个插件,可以从dockerhub拉,但我还没有想出如何使用它呢。 我会继续,但jenkins的问题是,我必须自己主持。 我正在寻找CI服务,可以从docker中心拉,对图像运行testing,在Web UI中显示testing结果,还callbackdocker集线器,让它知道发生了什么,所以如果testing失败,dockerhub不会发出webhook推到生产。 任何人都知道我所描述的东西吗? 非常感谢你! ==更新==我一直在继续研究所有的CI选项。 我注意到2个趋势: 用Dockerreplace旧的虚拟化解决scheme。 例如Travis CI 在这里 。 例如drone.io,它使用Docker作为容器从头开始运行testing,如此处所述。 但是,我不认为他们可以在其中再运行另一层容器,只需运行testing即可。 我不认为你可以build立docker形象。 使他们的旧虚拟化解决scheme支持Docker CLI,然后您可以构buildDocker镜像,将镜像部署到registry,甚至在Docker容器中运行testing,例如CircleCI 。 2恕我直言对我来说比1好。 如果1和2可以合并,那就太酷了。 但是,这两个解决scheme都是从源代码开始的,并希望执行“构build”。 他们没有能力从DockerHub拉。 而且我不确定docker容器里的testing支持有多好。 我还在试验。

任何CI服务是否允许您构buildDocker容器并使用Docker构buildcaching?

我有一堆Docker容器,都使用docker-compose(之前的图)来连接起来。 我发现自称为“Docker CI”服务的服务通常只是在谈论使用Docker来运行他们的构build工作人员。 我想要一个持续的集成服务,在运行之间保留Docker构buildcaching,而不是启动一个全新的工作/文件系统/构build上下文。 否则,build立绝对永远。 理想的pipe理(与https://github.com/groupon/DotCi不同,CircleCI没有随时可用的构build数据库)。 我发现的唯一的东西就是TeamCity(老的,你不能像使用CircleCI一样容易地在yaml文件中编译任务,你必须维护基础设施等)。 Quay.io没有提供像CircleCI和Travis这样的数据库,所以你必须分叉dev和prod,并在容器内部安装一个,并在容器构build期间运行unit testing(例如 – 你不能产生一个未build成的容器debugging的东西!)。 如何在Docker容器集群上运行持续集成?

Jenkins – Docker集成

我正在寻找将Docker集成到Jenkins中以执行构build/testing命令的最佳方法。 我发现的最好的来源是这篇博文: http : //blog.howareyou.com/post/62157486858/continuous-delivery-with-docker-and-jenkins-part-i 它基本上提供了所有的执行命令与“docker运行”。 我希望看到更好的与Jenkins插件的集成,但我在这个领域找不到任何东西。 任何人都可以提出一个好的方法来进行? 有没有什么项目可以解决这个问题? 谢谢

用supervisordpipe理docker容器的最佳方法

我必须在同一台服务器(客户端的要求)上设置“dockerized”环境(集成,qa和生产)。 每个环境的组成如下: 的RabbitMQ 芹菜 花 基于python 3的应用程序称为“A”(每个环境的特定分支) 在他们身上,jenkins将会根据CI来处理部署。 每个环境使用一组容器听起来像是最好的方法。 但是现在我需要stream程经理来运行和监督他们: 3只兔子容器, 3个芹菜/鲜花容器, 3个“A”容器, 1jenkins容器。 Supervisord似乎是最好的select,但是在我的testing中,我无法“正常地”重启一个容器。 这里是supervisord.conf的一个片段 [program:docker-rabbit] command=/usr/bin/docker run -p 5672:5672 -p 15672:15672 tutum/rabbitmq startsecs=20 autorestart=unexpected exitcodes=0,1 stopsignal=KILL 所以我想知道什么是分离每个环境的最佳方式,并且能够pipe理和监督每个服务(一个容器)。 [编辑我的解决scheme,由托马斯响应启发] 每个容器都由一个看起来像.sh的脚本运行 rabbit-integration.py #!/bin/bash #set -x SERVICE="rabbitmq" SH_S = "/path/to_shs" export MY_ENV="integration" . $SH_S/env_.sh . $SH_S/utils.sh SERVICE_ENV=$SERVICE-$MY_ENV ID_FILE=/tmp/$SERVICE_ENV.name # pid file trap stop SIGHUP SIGINT SIGTERM […]