gradle multiproject && docker build
brew install gradle
// 安装
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce
// 加速
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://099430a4.m.daocloud.io
gradle wrapper
├── README.md
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── lib
│ └── commons-codec.jar
├── moviesservice
│ ├── build.gradle
│ └── src
│ └── main
│ ├── java
│ │ └── com
│ │ └── dalong
│ │ └── moviesservice
│ │ └── Movies.java
│ └── resources
├── settings.gradle
├── src
│ ├── main
│ │ ├── docker
│ │ │ └── Dockerfile
│ │ ├── java
│ │ │ └── com
│ │ │ └── dalong
│ │ │ └── Application.java
│ │ └── resources
│ └── test
│ ├── java
│ └── resources
└── userservice
├── build.gradle
└── src
└── main
├── java
│ └── com
│ └── dalong
│ └── userservice
│ └── User.java
└── resources
多项目主要是 settings.gradle,具体代码如下:
1. settings.gradle
rootProject.name = 'parent'
include 'moviesservice'
include 'userservice'
2. build.gradle
group 'com.gradleapp'
version '1.0-SNAPSHOT'
buildscript {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
dependencies {
classpath('se.transmode.gradle:gradle-docker:1.2')
}
}
apply plugin: 'java'
apply plugin: 'application'
apply plugin: "docker"
sourceCompatibility = 1.8
mainClassName = 'com.dalong.Application'
repositories {
mavenCentral()
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
// 依赖引用
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile project(":userservice")
compile project(":moviesservice")
compile files("lib/commons-codec.jar")
}
// docker build task
task buildDocker(type:Docker,dependsOn:build){
push = false
applicationName ="gradlemultiproject"
project.group="dockerimagehost/mydemo"
dockerfile = file("${projectDir}/src/main/docker/Dockerfile")
doFirst {
copy {
from distZip
into stageDir
}
}
}
3. 子项目gradle 配置,比较简单
group 'com.gradleapp'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
4. dockerfile
gradle buildDocker or ./gradlew buildDocker
> Task :buildDocker
Sending build context to Docker daemon 224.8kB
Step 1/5 : FROM openjdk:8-jre-alpine
---> b1bd879ca9b3
Step 2/5 : WORKDIR /appdemo/
---> Using cache
---> 53e534f7f64f
Step 3/5 : COPY parent-1.0-SNAPSHOT.zip /appdemo
---> f07ca2806459
Step 4/5 : RUN unzip /appdemo/parent-1.0-SNAPSHOT.zip && rm -rf parent-1.0-SNAPSHOT.zip
---> Running in f42179c4ac39
Archive: /appdemo/parent-1.0-SNAPSHOT.zip
creating: parent-1.0-SNAPSHOT/
creating: parent-1.0-SNAPSHOT/lib/
inflating: parent-1.0-SNAPSHOT/lib/parent-1.0-SNAPSHOT.jar
inflating: parent-1.0-SNAPSHOT/lib/commons-codec.jar
inflating: parent-1.0-SNAPSHOT/lib/userservice-1.0-SNAPSHOT.jar
inflating: parent-1.0-SNAPSHOT/lib/moviesservice-1.0-SNAPSHOT.jar
creating: parent-1.0-SNAPSHOT/bin/
inflating: parent-1.0-SNAPSHOT/bin/parent.bat
inflating: parent-1.0-SNAPSHOT/bin/parent
Removing intermediate container f42179c4ac39
---> e322da1a4e8a
Step 5/5 : ENTRYPOINT [ "./parent-1.0-SNAPSHOT/bin/parent"]
---> Running in 8c279ec90d6f
Removing intermediate container 8c279ec90d6f
---> 39e705358ef1
Successfully built 39e705358ef1
Successfully tagged dockerimagehost/mydemo/gradlemultiproject:1.0-SNAPSHOT
https://docs.gradle.org/4.5/userguide/intro_multi_project_builds.html
https://github.com/Transmode/gradle-docker
https://github.com/rongfengliang/gradlemultiproject.git
gradle multiproject && docker build的更多相关文章
- 【云计算】docker build如何支持参数化构建?
docker 1.9.0版本之后,已经支持docker build参数化构建. docker 版本更新记录: github讨论: 参开资料: https://github.com/docker/doc ...
- docker: "build" requires 1 argument. See 'docker build --help'.
http://bbs.csdn.net/topics/391040030 docker build --tag="ouruser/sinatra:v3" -<Dockerf ...
- Docker build Dockerfile 构建镜像 - 二
Dockerfile 制作镜像 https://hub.docker.com/ 搜索需要镜像: https://hub.docker.com/_/centos/ 官方示例: centos:6 1.这里 ...
- Jenkins Docker安装及Docker build step插件部署配置
生产部署环境:A:192.168.1.2 B:192.168.1.3 两台服务器系统均是Centos 7.3 , Docker版本都1.12.6 Jenkins安装操作步骤: 1.在A服务器上使用命 ...
- 25.week4 docker build 也就是创建自己的image 上传image到dockerhub 从dockerhub下载images
dado可以写你自己的名字 这个命令就会根据目录下的Dockerfile(固定用和这个名字)文件里面的内容 去下载并创建运行命令一步一步地 Setting up libxfixes3:amd64 (: ...
- docker build 指定dockerfile
1. Dockerfile文件使用 docker build命令会根据Dockerfile文件及上下文构建新Docker镜像.构建上下文是指Dockerfile所在的本地路径或一个URL(Git仓库地 ...
- "docker build" requires exactly 1 argument(s).
Docker 是怎么样的东西,这里就不说了,这里说说dockerfile创建容器时遇到的问题. 首先我想达到的目的很简单,就是用dockerfile去创建容器,步骤如下: 创建并编辑dockerfil ...
- 使用dockerfile文件创建镜像时docker build没有反应
问题: 先 docker pull centos:7 拉取了一个官方的基础镜像,为后续创建jdk8镜像做准备,在创建如下的dockerfile文件 执行docker build -t jdk_8u19 ...
- docker build
nginx Docfile ----------------------- FROM centos MAINTAINER daniel RUN yum install -y wget RUN ...
随机推荐
- zabbix selinux audit2allow 问题
he following example demonstrates using audit2allow to create a policy module: A denial and the asso ...
- Python 序列化pickle/cPickle模块整理
Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游戏允许你在退出的时候保存进度,然后你再 ...
- Bootstrap 可视化布局--拖拽后弹窗进行编辑
Bootstrap 可视化布局--拖拽后弹窗进行编辑 最近后台想一个需求,使用可视化布局-中文 | en中拖拽表格后,弹窗进行编辑,保存下载后在后台生成pdf格式. 奈何各种问题不断,使用 jquer ...
- Where do I belong
先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引. 举例:where([1,2,3,4], 1.5) 应该返回 1.因为1.5插入到数组[1,2,3,4]后变成[1,1.5,2,3, ...
- 简单粗暴地理解js原型链–js面向对象编程
简单粗暴地理解js原型链–js面向对象编程 作者:茄果 链接:http://www.cnblogs.com/qieguo/archive/2016/05/03/5451626.html 原型链理解起来 ...
- vue 错误记录
1.错误信息: You may use special comments to disable some warnings.Use // eslint-disable-next-line to ign ...
- 第1课:接口测试和jmeter总结
接口测试 1. 接口的分类:webService和http api接口 1) webService接口:是按照soap协议通过http传输,请求报文和返回报文都是xml格式,一般要借助工具来测试接口: ...
- 状态保持: cookier及session简介
状态保持 因为 http 是一种无状态协议,浏览器请求服务器是无状态的. 无状态:指一次用户请求时,浏览器.服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求. 无状态原因:浏览器与服务器是 ...
- L158
It started out modestly enough: David Hertz, having learned that under the right conditions you real ...
- Java从入门到精通全套教程免费分享
这是我自己早前听课时整理的Java全套知识,适用于初学者,也可以适用于中级进阶的人,你们可以下载,我认为是比较系统全面的,可以抵得上市场上90%的学习资料.讨厌那些随便乱写的资料还有拿出来卖钱的人!在 ...