控制docker – 从Gradle构build脚本构build

对于我的testing,我需要运行容器与例如一些数据库。 我使用docker-compose设置了所有的东西,如果容器已经启动,我的testing正在运行。 一个注意:这些不是unit testing,而是集成testing,而且它们可以运行更长时间。

从Gradle控制docker-compose的最好方法是什么? 我需要运行容器(如果不是),并开始testing。 这也应该适用于OSX和Linux。

我想你可以使用exec任务运行docker-compose up -d来启动环境。

你可以运行docker-compose stop; docker-compose rm -f docker-compose stop; docker-compose rm -f作为一个清理任务,当testing完成时(如果你想停止一切,并删除容器)。

虽然这个问题已经有点老了:

我写了一个插件来做你想要的。 您可以在构build脚本中包含容器定义,它将直接从您的Gradlepipe理容器生命周期:

 plugins { id "com.chrisgahlert.gradle-dcompose-plugin" version "0.8.1" } dcompose { database { image = 'mysql:latest' portBindings = ['3306:3306'] } } test { dependsOn startDatabaseContainer finalizedBy removeDatabaseContainer } 

这将在运行gradle test之前启动一个MySQL数据库,然后将其删除。

有关更多详细信息,请参阅: https : //github.com/chrisgahlert/gradle-dcompose-plugin