intellj 結合docker將gradle+springboot專案生成映象
阿新 • • 發佈:2018-12-23
好記性不如爛筆頭,現在記得清清楚楚,過一段時間就忘得一乾二淨。
安裝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 最後映象就生成了