前言:其实gradle-docker插件干的事和我们手动制作镜像是一样的,只不过它封装了一些步骤而已、

eg:如果我们要将项目打包成镜像,首先我们要写Dockerfile,这是制作镜像的不可或缺的第一步,一般我们的Dockerfile如下:

FROM tomcat
MAINTAINER liuzj 775967211@qq.com
COPY **.war /usr/local/tomcat/webapps

因为我们的web项目是基于tomcat的所以基础镜像为tomcat,然后就是将我们的war包拷贝到tomcat下面去,然后执行docker build -t *** dir就可以制作成镜像。了解了这个之后再看

下面的gradle是如何做的↓

1.引入gradle docker插件并写好gradle任务

buildscript {
repositories {
  jcenter()
mavenCentral()
}
dependencies {
classpath('org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE')
classpath('se.transmode.gradle:gradle-docker:1.2')
}
} apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'war'
apply plugin: 'org.springframework.boot'
apply plugin: 'docker'

// 镜像名字将会是 group + baseName; 镜像tag为 version
group = 'springio' jar {
baseName = 'gs-spring-boot-docker'
version = '0.1.0'
}

// 回顾我们手动制作镜像,我们首先要得到一个war包,所以我们得依赖build
task buildDocker(type: Docker, dependsOn: build) {
push = false
applicationName = jar.baseName
dockerfile = file('Dockerfile')
 // 以下步骤可以不要,因为我们项目默认打完的war包会在固定目录下,而无需再去拷贝到build/docker目录下去,其中build/docker目录是自动会创建的
doFirst {
copy {
from war
into "build/docker/target"
}
}
} repositories {
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
testCompile("org.springframework.boot:spring-boot-starter-test")
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
}

2.创建Dockerfile文件

FROM java
# SpringBoot内嵌的tomcat默认使用/temp作为工作目录
VOLUME /tmp

3.执行gradle buildDocker即可生成镜像

补充如下几个问题:

错误:如下错误是因为国内下载Docker镜像缓慢导致,需要配置一下Docker Hub加速器(DaoCloud是国内第一家Docker Hub加速器)

Error response from daemon: Get https://registry-1.docker.io/v2/openstf/stf/manifests/latest: Get https://auth.docker.io/token?scope=repository%3Aopenstf%2Fstf%3Apull&service=registry.docker.io: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

配置如下:

在Docker setting -> Docker Daemon -> Registry Mirrors 中添加http://bcb5bdc3.m.daocloud.io

参考资料:

https://www.cnblogs.com/YatHo/p/7100609.html

https://yq.aliyun.com/articles/47348

https://github.com/ma-de/spring-boot-war-docker/blob/master/Dockerfile

以上仅个人总结,如有不对或补充希望能指点一二,3Q!

最新文章

  1. Greenplum记录(一):主体结构、master、segments节点、interconnect、performance monitor
  2. WhatsApp的Erlang世界
  3. continue用法
  4. Atitit usrQBK13 html dsl 规范与解决方案
  5. 求三数中Max和猜拳游戏
  6. (PowerShell) Managing Windows Registry
  7. 命令学习:iftop
  8. Excel表数据导入数据库表中
  9. Creating Apps With Material Design —— Defining Shadows and Clipping Views
  10. BZOJ 2242: [SDOI2011]计算器( 快速幂 + 扩展欧几里德 + BSGS )
  11. Python内置函数(47)——vars
  12. MVC模型注解
  13. OGNL表达式的一个坑!
  14. Android为TV端助力 am命令以及hotkey文件的编写
  15. spring、springmvc、springboot、springcloud
  16. 【转】- 从FM推演各深度CTR预估模型(附代码)
  17. hostswap dcevm
  18. redis安装、配置、启停
  19. linux文件系统写过程简析
  20. CodeSmith Generator 6.5 自动生成后的源码分析

热门文章

  1. 通过Yii来理解MVC
  2. 剑指offer 丑数
  3. [Cake] 1. CI中的Cake
  4. lua 操作数据库
  5. 禁掉coolie,session还能正常使用吗?
  6. JS-随机生成的密码
  7. jvm类加载器和双亲委派模型
  8. 百度地图JavaScript API经纬度查询-MAP
  9. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'user'
  10. Linux查看系统中的每个进程