全屏浏览
缩小浏览
回到页首

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


posted @   huhx  阅读(270)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2016-03-24 android基础---->service的生命周期
2016-03-24 android基础---->ContentProvider的使用
点击右上角即可分享
微信分享提示