gradle build docker image


前言:其實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!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM