Задачи Gradle Docker - PullRequest
       2

Задачи Gradle Docker

0 голосов
/ 04 мая 2019

Для моих локальных задач развития 1. Я хочу убедиться, что БД работает в контейнере Docker, в данном случае это Postgres, у меня есть задача bootRun, определенная в моем файле build.gradle

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

и докер установлен на моей машине, я просто хочу убедиться, что мне не нужно вручную идти и запускать образ postgres из терминала, а затем делать bootRun, можем ли мы создать задачу gradle, которая может гарантировать, что она перезапускает postgres при каждом выходе из bootRun и запускается каждый раз, когда мы запускаем приложение.

1 Ответ

1 голос
/ 04 мая 2019

Я использую плагин gradle-docker-compose для выполнения такого рода задач.Вы можете создать docker-compose.yml файл, который определяет ваш postgres db:

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"
    ]
}

Теперь, когда вы запустите gradle bootRunон запустит базу данных до загрузки весны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...