【问题标题】:Use Cloud Foundry's Elastic Runtime Container for Jenkins Builds为 Jenkins 构建使用 Cloud Foundry 的 Elastic Runtime Container
【发布时间】:2016-03-09 23:34:09
【问题描述】:
我们目前正在考虑将 Jenkins 集成到 Cloud Foundry 中。由于 Docker 在其容器中“容器化构建”非常受欢迎,我们认为同样的想法可能适用于 Elastic Runtime 中的 CF 容器。
这是我们想要做的粗略草图:
- 通过 Jenkins 连接到此容器并使用 Jenkins 代理(现在在容器中运行)在容器中构建我们的应用程序
- 在容器内启动应用程序
- 针对容器中运行的应用运行端到端测试
我的问题是:
- 一般来说:您认为这是个好主意吗?
- 如果是这样 - 我们如何获得提供 JDK 的 Cloud Foundry 构建包?
- 是否可以在容器内构建应用后让容器运行我们的应用,还是在构建后必须将应用推送到另一个容器?
非常感谢您的帮助!
【问题讨论】:
标签:
java
jenkins
cloud-foundry
【解决方案1】:
我的问题是:
一般来说:你认为这是个好主意吗?
我建议您向 slack.concourse.ci 上的 concourse ci 社区 slack 提出这个问题,因为他们在使用容器测试 cf 应用程序方面拥有丰富的经验。我并不是建议您从 jenkins 切换,而是借鉴他们一起使用容器、cf 和 ci 的经验。 concourse 使用容器化构建,让您能够在没有 Cloud Foundry 的情况下在容器内测试应用程序,并在以后作为 Cloud Foundry 中的应用程序运行。如果您要使用您描述的方法,您应该注意的一件事是回收每个用于测试的容器。所以一般来说,我认为你的大纲不是一个好主意,因为每次都有其他方法可以从一个新的容器开始,出于可重复性的原因,这可能会更好。
如果是这样 - 我们如何获得提供 JDK 的 Cloud Foundry 构建包?
java-builpdack 已经有一个 JRE 并且有扩展它的说明。您可以从查看 openjdk jre 文档开始,并整理如何为 JDK 扩展它。 https://github.com/cloudfoundry/java-buildpack/blob/master/docs/jre-open_jdk_jre.md
是否可以在容器内构建应用后让容器运行我们的应用,还是在构建后必须将应用推送到另一个容器?
我强烈建议您使用新鲜的容器。可重复性和不变性是测试的关键内容。