TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: How do you do Docker CI?

11 点作者 skyraider超过 10 年前
I have a bunch of Docker containers all hooked up using docker-compose (previously fig). I have found that services that advertise themselves as &quot;Docker CI&quot; services are usually just talking about using Docker to run their build workers.<p>I would like a continuous integration service that preserves the Docker build cache between runs, instead of spinning up a completely new worker&#x2F;filesystem&#x2F;build context. Otherwise, builds take absolutely forever. Ideally managed (unlike https:&#x2F;&#x2F;github.com&#x2F;groupon&#x2F;DotCi, which doesn&#x27;t come with CircleCI&#x27;s ready-to-go per-build database).<p>The only thing I&#x27;ve found is TeamCity (old, you can&#x27;t version build tasks in a yaml file easily like you can with CircleCI, you have to maintain infrastructure, etc). Quay.io doesn&#x27;t provision a database like CircleCI and Travis do, so you have to bifurcate dev and prod and install one inside the container and run unit tests during the container build (ew - you can&#x27;t spawn into an unbuilt container to debug things!).<p>How do you run continuous integration on your Docker container cluster?

2 条评论

jquast超过 10 年前
I think TeamCity can achieve your needs: it has the ability to create a &quot;build chain&quot;, where dependent builds can specify &quot;Build on same host as &lt;docker build&gt;&quot; and &quot;Re-use existing (successful) build&quot;.<p>I do something similar by provisioning Joyent VM&#x27;s as a dependency of a build chain that requires a build to be run on those VM&#x27;s.<p>The most recent TC release can persist your build configuration to VCS (say, a private github proj.), so you do get some level of vcs-managed build configuration.
wernerb超过 10 年前
Drone [0] seems what you would like to use. Define all your containers as service containers and create&#x2F;define steps to test how those service containers co-operate. Of course, you must test each service container individually in separate drone builds.<p>[0]: <a href="https://github.com/drone/drone" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;drone&#x2F;drone</a>