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系統

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章