我为应用程序(A)创建了一个git repo,其中包含一个Dockerfile和docker-compose.yml,该文件站起来一个postgres数据库并创建并填充了一些表。在将其作为一次性数据库开发期间,我将其用作支持应用程序以进行测试。
我想在Jenkins管道中使用此docker应用程序来测试我的主应用程序(B),该主应用程序是读写数据库的NodeJS应用程序。应用程序B也在git中,我想使用Jenkins管道来运行其测试(用Mocha编写)。因此,我的总体管道逻辑将是这样的:
触发事件: 应用程序B的代码被推送到git的某个分支(功能或主机)。
管道:
git checkout code for Application B (implicit)
git checkout code for Application A (explicitly)
cd to Application A directory:
docker-compose up -d // start postgres container
cd's to Application B directory:
npm install
npm run test (kicks off my Mocha tests that expect postgres db with localhost:5432 url)
cd to Application A directory
docker-compose down // destroy postgres container
// if tests pass, deploy application B
我正在尝试找出构建此结构的最佳方法。我实际上是从 two 仓库中签出代码:一个我要测试和构建的仓库,另一个仓库包含一个用于测试的“支持”应用程序,实质上是在模拟我的真实数据库。
我将使用脚本还是声明性管道? 管道在应用程序B的工作空间目录中运行,该目录在触发管道时被隐式签出。我是否只需在此工作空间中签出Application A的代码并在其上运行docker命令?