intellj 结合docker将gradle+springboot项目生成镜像

好记性不如烂笔头,现在记得清清楚楚,过一段时间就忘得一干二净。

安装docker

首先安装docker 安装教程前面有一篇博客已经写了

创建项目

  使用gradle包管理器创建springboot的项目

1、在intellJ中配置docker连接
下载docker插件

我这个 是已经安装过了 没有安装的搜索一下安装就行 然后intellj会重启一次

配置docker

在这里插入图片描述

2、基础的创建完成之后添加docker插件依赖 具体的配置请看下面的代码

build.gradle的配置

buildscript {
    ext {
        springBootVersion = '2.0.2.RELEASE'
    }
    repositories {
        mavenCentral()
        maven { url "https://plugins.gradle.org/m2/" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
       // classpath("se.transmode.gradle:gradle-docker:1.2")  这个插件我这边使用一直不行
        // 生成 镜像的时候一直报错 运行dockerTesk 生成的文件不是jar包 而是一个tar
        //最终生成镜像的时候运行找不到主类 纠结了两天不知道是什么原因
        // 最后选用了下面这个插件
        // ,这个插件应该是gradle自己开发的开源项目 (我就瞎比比有可能不是)
        classpath('gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.17.2')
    }
}

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'application'
//使用上面引入的docker插件
apply plugin: 'com.palantir.docker'

group = 'laws'
version = '1.0'
sourceCompatibility = 1.8
targetCompatibility = 1.8
mainClassName = "com.example.demo.DemoApplication"
repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    // https://mvnrepository.com/artifact/mysql/mysql-connector-java
    compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.47'

    testCompile('org.springframework.boot:spring-boot-starter-test')
}

jar {
    baseName 'spring-boot-gradle-for-docker'
    version '1.0'
}


docker {
    //name "${project.group}/${jar.baseName}"
    //简单介绍下上面docker{}里面的参数:
   // name是镜像名,可自己设置名
  //  buildArgs是设置构建时的环境变量,使用${jar.archiveName}获取构建完的jar包,将其赋值给JAR_FILE变量,在Dockerfile那边便可引用
    name "registry.cn-qingdao.aliyuncs.com/laws123/laws:${jar.version}"
  // name 'registry.cn-qingdao.aliyuncs.com/laws123/laws'
    files jar.archivePath
    buildArgs(['JAR_FILE': "${jar.archiveName}"])
}

Dockerfile的配置

FROM openjdk #基础的依赖镜像
VOLUME /tmp  # 挂在的数据卷
ARG JAR_FILE 
ADD ${JAR_FILE} app.jar #这个就是build.gradle那边配置的有关
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]


操作异常,关机重启一下就好了 不知道怎么回事
在这里插入图片描述
生成镜像,先build在运行docker 最后镜像就生成了

创建容器


点击运行就ok
使用虚拟机的ip加端口访问 因为docker是装到虚拟机里面 容器的端口是映射虚拟机的,不是windows系统

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值