zoukankan      html  css  js  c++  java
  • 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!

  • 相关阅读:
    音频、摄像机操作
    调用系统相机及摄像机
    图片的放大缩小
    haxm intelx86加速模拟器的安装
    mac eclipse 下安装subclipse
    文件多线程下载实现
    windows与linux之间传输文件
    ZeroMQ接口函数之 :zmq_setsockopt –设置ZMQ socket的属性
    使用C语言在windows下一口气打开一批网页
    Net-SNMP是线程安全的吗
  • 原文地址:https://www.cnblogs.com/lzj123/p/8605840.html
Copyright © 2011-2022 走看看