博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gradle build docker image
阅读量:7230 次
发布时间:2019-06-29

本文共 2278 字,大约阅读时间需要 7 分钟。

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

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

FROM tomcatMAINTAINER liuzj 775967211@qq.comCOPY **.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为 versiongroup = 'springio'jar { baseName = 'gs-spring-boot-docker' version = '0.1.0'} // 回顾我们手动制作镜像,我们首先要得到一个war包,所以我们得依赖buildtask 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.8targetCompatibility = 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!

你可能感兴趣的文章
android preference page
查看>>
mysql索引挑选
查看>>
关于冰岛足球的段子
查看>>
在 Windows 中安装 Laravel 5.1.X
查看>>
TeamViewer 9发布-在Linux下安装运行
查看>>
Centos7 Gitea安装教程 - 一款易搭建,运行快的Git服务器
查看>>
CentOS minimal 网络配置
查看>>
Nginx架构
查看>>
为什么结构体中的数组不能用const int变量指定大小?
查看>>
模板特化疑问
查看>>
ruby多线程理解
查看>>
享用甜点时要不要来杯咖啡?Java 与树莓派 (Raspberry PI)
查看>>
精通Oracle 10g Pl/SQL编程
查看>>
邱怡轩:R中大规模矩阵的SVD与矩阵补全
查看>>
C++ Primer习题集(第5版)
查看>>
centos7 mysql 5.7 yum安装
查看>>
JSOUP简单应用
查看>>
Mysql,SqlServer,Oracle主键自动增长的设置
查看>>
开源 java CMS - FreeCMS2.3会员登录
查看>>
malloc(0)的返回值
查看>>