前言:其实gradle-docker插件干的事和咱们手动制做镜像是同样的,只不过它封装了一些步骤而已、html
eg:若是咱们要将项目打包成镜像,首先咱们要写Dockerfile,这是制做镜像的不可或缺的第一步,通常咱们的Dockerfile以下:java
FROM tomcat
MAINTAINER liuzj 775967211@qq.com
COPY **.war /usr/local/tomcat/webapps
由于咱们的web项目是基于tomcat的因此基础镜像为tomcat,而后就是将咱们的war包拷贝到tomcat下面去,而后执行docker build -t *** dir就能够制做成镜像。了解了这个以后再看git
下面的gradle是如何作的↓github
1.引入gradle docker插件并写好gradle任务web
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文件spring
FROM java
# SpringBoot内嵌的tomcat默认使用/temp做为工做目录
VOLUME /tmp
3.执行gradle buildDocker便可生成镜像docker
补充以下几个问题:tomcat
错误:以下错误是由于国内下载Docker镜像缓慢致使,须要配置一下Docker Hub加速器(DaoCloud是国内第一家Docker Hub加速器)app
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)
配置以下:eclipse
在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!