1. 程式人生 > >intellj 結合docker將gradle+springboot專案生成映象

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 最後映象就生成了