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 ...
 
随机推荐
- tcp/ip学习笔记-TCP
			
tcp/ip学习笔记-TCP 彭会锋 报文发送采用的是tcp_output函数,
 - POJ  1160  经典区间dp/四边形优化
			
链接http://poj.org/problem?id=1160 很好的一个题,涉及到了以前老师说过的一个题目,可惜没往那上面想. 题意,给出N个城镇的地址,他们在一条直线上,现在要选择P个城镇建立邮 ...
 - Mutations
			
蛤蟆可以吃队友,也可以吃对手. 如果数组第一个字符串元素包含了第二个字符串元素的所有字符,函数返回true. 举例,["hello", "Hello"]应该返回 ...
 - HDU 2062  Subset sequence 数位dp,思路 难度:1
			
http://acm.hdu.edu.cn/showproblem.php?pid=2062 Subset sequence Time Limit: 1000/1000 MS (Java/Others ...
 - bzoj1997
			
题解: 在圆上面的点能不能不交叉 和那一题差不多 http://www.cnblogs.com/xuanyiming/p/8110597.html 代码: #include<bits/stdc+ ...
 - PostgreSQL 9.6 同步多副本、remote_apply记录
			
摘自:https://yq.aliyun.com/articles/61274 同步多副本配置方法 参数配置如下 synchronous_standby_names (string) 支持两种写法 n ...
 - JAVA交换两个变量的值-(不使用第三变量)
			
以下方法的根本原理就是: 借助第三个变量 c = a; a = b; b = c; 运算符-不借助第三变量: a = a+b; b = a-b; a = a-b; 为运算符-不借助第三个变量: (此种 ...
 - IR Cut Filter
			
IR cut filter,即红外截止滤光片,它放在于LENS与Sensor之间.因人眼与CMOS Sensor对各波长的响应不同,人眼看不到红外光但sensor会感应,因此需要IR cut filt ...
 - Device-Dependent Bitmaps (DDB) 设备相关位图
			
设备相关的位图(DDB)使用单一结构BITMAP结构描述.该结构的成员指定矩形区域的宽度和高度,以像素为单位;将条目从设备调色板映射到像素的数组的宽度;以及器件的颜色格式,在每个像素的颜色平面和位数方 ...
 - 国内知名的自然语言处理(NLP)团队
			
工业界 腾讯人工智能实验室(Tencent AI Lab) 百度自然语言处理(Baidu NLP):对外提供了百度AI开放平台,王海峰(现任百度副总裁,AI技术平台体系AIG总负责人) 微软亚洲研究院 ...