gralde-plugin->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
gralde-plugin->docker-compose的使用的更多相关文章
- Docker Compose部署 EFK(Elasticsearch + Fluentd + Kibana)收集日志
简述 本文用于记录如何使用Docker Compose部署 EFK(Elasticsearch + Fluentd + Kibana) 收集Docker容器日志,使用EFK,可以无侵入代码,获得灵活, ...
- Docker compose学习笔记
一.compose compose 作用 你的应用可能需要很多个服务,比如web服务,数据库服务,缓存服务等等.我们可以把这些服务放到单独的容器里面,如果手工去配置这些服务会有些麻烦,docker c ...
- docker compose 笔记
https://www.youtube.com/watch?v=Uez88TWOECg 是基于这个视频做的笔记. Docker Compose: Compose is a tool for defin ...
- 利用docker compose启动gitlab及runner
添加docker compose配置文件 新建文件docker-compose.yml,输入如下内容: gitlab: image: 'gitlab/gitlab-ce:latest' contain ...
- Docker Compose to CoreOS
taken from https://docs.docker.com/compose/install/ the only thing is that /usr is read only, but /o ...
- Docker Compose—简化复杂容器应用的利器
Compose是用于定义和运行复杂Docker应用的工具.你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成. 1. 安装Docker和Compo ...
- .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行
本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...
- Docker Compose容器编排
Compose是Docker官方的开源项目,可以实现对Docker容器集群的快速编排.Compose 中有两个重要的概念:服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实 ...
- Docker(四):Docker 三剑客之 Docker Compose
前两篇文章我们介绍了 Dockerfile 的使用Docker(二):Dockerfile 使用介绍,我们知道使用一个 Dockerfile 模板文件可以定义一个单独的应用容器,如果需要定义多个容器就 ...
- Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践
我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实 ...
随机推荐
- Python跳一跳小游戏
一:准备工具 adb 驱动 下载链接:http://adbshell.com/upload/adb.zip 安卓手机 打开手机调试模式 usb线接好手机和电脑 PyCharm:专门用于Python ...
- c二级
一·基本数据结构与算法 算法基本概念 算法:解决问题的方法 程序:用某种语言来诠释算法,将算法写成代码. 算法基本特征: 1.可行性 2.确定性 3.有穷性 4.有足够的情报 算法的基本要素 1.算法 ...
- Oracle添加约束
约束 -contraint Oracle中约束类型:主键约束,唯一约束,非空约束,外键约束,check约束,下述主要是alter的方法去添加约束,也可以在建表时直接添加约束 主键约束 alter ta ...
- 等级保护2.0 三级-Linux 测评指导书
等级保护2.0 三级-Linux 测评指导书 1.1安全计算环境 1.1.1身份鉴别 1.1.2访问控制 1.1.4入侵防范 1.1.5恶意代码防范 ...
- 学Java的第5天,今天做了个双色球系统
今天是学JAVA的第5天,刚刚把方法学完,然后就在这做黑马的题. 用了一个多小时时间,把他的 这些题都做完了 但是最后一道题,这个双色球系统我感觉挺有意思的 我看到这个题,分析后感觉需要4种方法: 1 ...
- 第17章 使用日志记录监视和排除错误(ASP.NET Core in Action, 2nd Edition)
第3部分 扩展应用程序 我们在第1部分和第2部分中介绍了大量内容:我们查看了您将用于构建传统服务器渲染的 Razor Pages 应用程序以及 Web API 的所有主要功能组件.在第3部分中,我们将 ...
- ArrayList 的toArray的转换数组方法的注意事项
ArrayList 的toArray的转换数组方法的注意事项 toArray()一共有两个方法 toArray(T[] a) 和toArray() 源码是 进行使用toArray()方法时候,使用 ( ...
- Linux中/etc目录下passwd和shadow文件
/etc/passwd介绍 首先,通过cat /etc/passwd 来查看文件/etc/passwd中内容: root:x:0:0:root:/root:/bin/bash daemon:x:1:1 ...
- 使用SecureCRT通过SSH连接远程Linux设备
Ubuntu安装和配置ssh教程 https://blog.csdn.net/future_ai/article/details/81701744 以SecureCRT为例: 把电脑和设备连接在同一个 ...
- greenDao基础用法(一)
1.配置 1.1 在 build.gradle(project) 中,加入这句 classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // a ...