3

gradle插件---->docker-compose的使用 - huhx

 1 year ago
source link: https://www.cnblogs.com/huhx/p/17253641.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

gradle插件---->docker-compose的使用

在java web项目中,本地开发经常会需要在本地使用docker启动数据库等之类的服务。gradle提供了一个插件,允许通过gradle task启动docker的容器。在这里我们介绍的一个gralde插件com.avast.gradle.docker-compose

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

定义task以及config

比如在我们项目的根目录下面,我们建立docker-compose.yml文件

version: '3.1'

services:
  postgres:
    image: postgres
    restart: always
    container_name: spring-security-postgresql
    ports:
      - "15432:5432"
    environment:
      POSTGRES_DB: learn_gradle
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      PGDATA: /var/lib/postgresql/data/pgdata
    volumes:
      - postgres-data:/var/lib/postgresql/data/pgdata
volumes:
  postgres-data:

然后在build.gradle文件里面定义相应的task以及配置

dockerCompose {
    useComposeFiles = ["${rootProject.projectDir}/docker-compose.yml"]
}

此外如果我们想在每次bootRun 之前先启动数据库之类的操作,可以在build.gradle添加task的依赖

bootRun.dependsOn composeUp

单独gradle文件

以上文件组织方式会有一个问题,就是以后插件越来越多的时候,build.gradle文件会膨胀难以维护。这时我们可以把额外插件的配置放在单独的文件里面,然后只需要在build.gradle里面引入即可。

创建单独的gradle文件

在gradle目录下面,我们创建docker-compose目录,然后在docker-compose目录下面创建docker-compose.yml文件与docker-compose.gradle文件

// docker-compose.gradle
apply plugin: 'docker-compose'

dockerCompose {
    useComposeFiles = ["${rootProject.projectDir}/gradle/docker-compose/docker-compose.yml"]
}

bootRun.dependsOn composeUp

在build.gradle文件引入

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

apply from: "${rootProject.projectDir}/gradle/docker-compose/docker-compose.gradle"

关于插件的使用

./gradlew composeUp
// 或者task 缩写
./gradlew cU
./gradlew composeDown
// 或者task 缩写
./gradlew cD

插件的文档:https://github.com/avast/gradle-docker-compose-plugin

作者: huhx
出处: www.cnblogs.com/huhx
格言:你尽力了,才有资格说自己的运气不好。
版权:本文版权归作者huhx和博客园共有,欢迎转载。未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK