好記性不如爛筆頭,現在記得清清楚楚,過一段時間就忘得一乾二淨。
安裝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系統