从Gradle构建脚本

时间:2015-10-25 14:39:24

标签: gradle docker docker-compose

对于我的测试,我需要运行带有例如一些数据库。我已经使用docker-compose设置了一切,如果容器已启动,我的测试正在运行。需要注意的是:这些不是单元测试,而是集成测试,并且允许它们运行更长时间。

从Gradle控制docker-compose的最佳方法是什么?我需要运行容器(如果没有)并启动测试。这也适用于OSX和Linux。

2 个答案:

答案 0 :(得分:2)

我认为您可以使用exec task运行docker-compose up -d来启动环境。

测试完成后,您可以运行docker-compose stop; docker-compose rm -f作为清理任务(如果要停止所有内容并删除容器)。

答案 1 :(得分:0)

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

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

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