从Gradle构建脚本控制docker编写
对于我的测试,我需要运行带有一些数据库的容器。我已经使用docker compose设置了所有内容,如果容器已启动,我的测试将正常工作。注意:这些不是单元测试,而是集成测试,它们可以运行更长的时间从Gradle构建脚本控制docker编写,gradle,docker,docker-compose,Gradle,Docker,Docker Compose,对于我的测试,我需要运行带有一些数据库的容器。我已经使用docker compose设置了所有内容,如果容器已启动,我的测试将正常工作。注意:这些不是单元测试,而是集成测试,它们可以运行更长的时间 从Gradle控制docker compose的最佳方式是什么?我需要运行容器(如果没有启动)并启动测试。这也适用于OSX和Linux。我认为您可以运行docker compose up-d来启动环境 您可以运行docker-compose-stop;docker编写rm-f作为测试完成时的清理任务(
从Gradle控制docker compose的最佳方式是什么?我需要运行容器(如果没有启动)并启动测试。这也适用于OSX和Linux。我认为您可以运行
docker compose up-d
来启动环境
您可以运行
docker-compose-stop;docker编写rm-f作为测试完成时的清理任务(如果您想停止一切并移除容器)。尽管这个问题已经有点过时了:
我写了一个插件来做你想要的。您可以在构建脚本中包含容器定义,它将直接从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
}
这将在运行gradletest
之前启动MySQL数据库,然后将其删除
有关更多详细信息,请参阅:Agree。只需使用exec
任务执行docker compose
。您可以在test
任务中使用dependsOn
和finalizedBy
,以确保在测试之前/之后启动和停止容器。