postgresql - 使用 Docker 和 Jenkins 管理用于测试的资源(数据库、elasticsearch、redis 等)

标签 postgresql elasticsearch jenkins docker redis

我们需要使用Jenkins来测试一些各自需要的web应用:

  • 一个数据库(在我们的例子中是 postgres)
  • 搜索服务(在我们的例子中是 ElasticSearch,但只是有时)
  • 一个缓存服务器,比如redis

到目前为止,我们只是在 Jenkins master 上运行了这些服务,但是当我们想要升级 Postgres、ES 或 Redis 版本时,这会导致问题。并非所有应用程序都可以同步移动,我们希望在 promise 将应用程序移至生产环境之前在新版本上运行测试。

我们想要做的是在每个作业运行的基础上提供这些服务,每个服务都在自己的容器中运行。

编排这些容器的最佳方式是什么?

  • 无论作业是否成功,您如何启动和拆除这些辅助容器?

  • 您如何防止端口冲突,例如,一个 Web 应用程序作业运行中的数据库与另一个 Web 应用程序作业中的数据库之间的端口冲突?

最佳答案

检查 docker-compose并为您的测试编写一个 docker-compose 文件。 latest network features Docker(专用网络)将帮助您隔离并行运行的构建。

但是,开始学习 docker-compose 时就好像您同时只有一个构建一样。如果对此有信心,请进一步查找有关网络的高级 docker 文档。

关于postgresql - 使用 Docker 和 Jenkins 管理用于测试的资源(数据库、elasticsearch、redis 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36935316/

相关文章:

postgresql - 字段显示为 null 或空字符串,但我无法选择它

php - 我应该如何从 PostgreSQL 下的一系列时间段中找到列的总和?

javascript - 可以用node的Elasticsearch在不重写的情况下仅更新特定字段吗?

django - Jenkins JUnit 插件给出错误 "ERROR: No test report files were found. Configuration error?"

jenkins - 在readme.md中显示github构建状态

jenkins - 如何从 Jenkins 推送到 git?

ruby-on-rails - 如何通过 Rails App 检查 postgres 服务器是否启动?

postgresql - 用于数据库连接的 Flask before_request 和 teardown_request

python - 在 Python 中将 JSON 参数作为 kwargs 传递

elasticsearch - Spring Data Elasticsearch 自动重连