Postgresql Gradle Docker任务

Postgresql Gradle Docker任务,postgresql,docker,gradle,Postgresql,Docker,Gradle,对于我的本地开发任务 1.我想确保DB在docker容器中运行,在本例中,docker容器是Postgres,我在build.gradle文件中定义了一个bootRun任务 bootRun{ jvmArgs = [ "-Ddb.host=jdbc:postgresql://localhost:5432/postgres", "-Ddb.username=postgres", "-Ddb.password=apgdb" ] } do

对于我的本地开发任务 1.我想确保DB在docker容器中运行,在本例中,docker容器是Postgres,我在build.gradle文件中定义了一个bootRun任务

bootRun{
    jvmArgs = [
        "-Ddb.host=jdbc:postgresql://localhost:5432/postgres",
        "-Ddb.username=postgres",
        "-Ddb.password=apgdb"
    ]
}
docker安装在我的机器上我只是想确保我不必手动从终端启动postgres映像,然后进行引导运行, 我们是否可以创建一个gradle任务,确保每次退出bootRun时重新启动postgres,并在每次旋转应用程序时启动它。

我使用来完成此类任务。您可以创建一个定义postgres db的
docker compose.yml
文件:

services:
  db:
    image: postgres:11
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: apgdb
      POSTGRES_DB: postgres
这将是相应的
build.gradle
文件:

plugins {
    id "com.avast.gradle.docker-compose" version "0.8.14"
}

dockerCompose {
    database {
        useComposeFiles = ['docker-compose.yml']
    }
}

bootRun{
    dependsOn 'databaseComposeUp'
    jvmArgs = [
        "-Ddb.host=jdbc:postgresql://localhost:5432/postgres",
        "-Ddb.username=postgres",
        "-Ddb.password=apgdb"
    ]
}

现在,当您运行
gradlebootrun
时,它将在spring启动之前启动数据库