1 准备工作
CentOS7 Docker 安装,当然可以在其他平台安装Docker,你可以尝试一下嘿嘿
CentOS 7部署Docker,启动Docker
查看好安装docker的宿主机的ip:
本人的虚拟机docker宿主机ip:192.168.22.128
2 创建gradle构建springboot项目,假设项目名为:test_gradle_docker_springboot
3 编写一个简单的接口用于服务验证
4 运行测试
网页输入:127.0.0.1:8080/hello,测试ok
5 修改build.gradle文件,接下来准备加入docker元素
完整的build.gradle如下:
buildscript {
ext {
springBootVersion = '2.1.2.RELEASE'
}
//配置仓库
repositories {
mavenCentral()
jcenter()
//添加镜像源
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")
}
}
//插件
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
//引入插件
apply plugin: 'docker'
//项目基础属性
//项目所属组织
group = 'com.wugenqiang'
//项目版本号
version = '1.0.0'
sourceCompatibility = '1.8'
//配置仓库
repositories {
mavenLocal()
jcenter()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
task buildDocker(type: Docker, dependsOn: build, group: "docker") {
dockerfile = file('src/main/docker/Dockerfile')
doFirst {
copy {
from jar
into stageDir
}
}
}
6 Docker 有一个简单的 Dockerfile 文件格式,它用来指定镜像的层次,需要创建
填写Dockerfile:
# From java image, version : 8
# 指定镜像,这里用网易云仓库的java8镜像
FROM hub.c.163.com/library/java:8-jre
#FROM java:openjdk-8-alpine
# 挂载test-docker目录,创建/tmp目录并持久化到Docker数据文件夹,
# 因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录。
VOLUME /tmp
# COPY or ADD to image
# 将编译目标jar包复制到/app.jar
ADD gradle-docker-1.0.0.jar app.jar
RUN bash -c "touch /app.jar"
# 默认8080端口
# 指定项目暴露的端口号,与项目配置一样,即容器配置的暴露端口
EXPOSE 8080
#ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 "/dev/urandom" 作为 Entropy Source
#ENTRYPOINT ["java", "-jar", "app.jar"]
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
7 创建docker容器
8 未写好,请问接下来怎么处理吗