好记性不如烂笔头,现在记得清清楚楚,过一段时间就忘得一干二净。
安装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系统