Springboot【2.x】+ Gradle远程部署到Linux的Docker

序言

缘由已在上章节讲述,本章就直接进入主题--基于springboot+Gradle项目远程部署到docker,希望能给大伙儿有些帮助。

系统及软件环境

  • Linux操作系统CentOS7(建议)
  • Docker(社区版)---官方地址

Docker RemoteApi

远程部署前提需要开启docker远程访问功能,下面介绍常用两个操作系统的配置

  • CentOS 6
    修改/etc/sysconfig/docker文件,重启后生效<span style="color: red;font-weight: bold">(service docker restart)</span>
DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:2375"
  • CentOS 7
    修改/usr/lib/systemd/system/docker.service文件,在ExecStart后面添加一行
ExecStart=/usr/bin/dockerd  -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock

<span style="margin-left: 40px">效果截图</span>

dockerConfig

<span style="margin-left: 40px">�重启服务�</span>

  systemctl daemon-reload    
  systemctl restart docker.service 
dockerInfo

项目创建与访问

打开intelliJ -> New Project -> Spring Assistant(Spring Initializr Server) -> 选择gradle -> 工程名(gdhello) -> 点击完成,项目结构如下

gradleProject

在src/main/kotlin 相应目录下新建HelloController

@RestController
class HelloController {
    @GetMapping("hello")
    fun helloWorld() = "hello world"
}

在src/main/resource的application.properties里面添加自定义端口号

server.port=8889

启动项目,浏览器访问

~$ ./gradlew bootRun
bootBrower

配置DockerFile

确保项目能正常访问后,在src/main/docker文件夹下面,新建dockerfile

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD gdhello-0.0.1.jar app.jar
# -Djava.security.egd=file:/dev/./urandom 可解决tomcat可能启动慢的问题
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EXPOSE 8889

配置Gradle中docker依赖

用intellij自动生成的gradle项目已经是5.6.x版本并且将原来的build.gradle替换成了build.gradle.kts(DSL脚本语言,如果不熟悉的童鞋,在文章末尾文献参考中有官方的学习资料,山姆本人对于DSL的认识也仅限于文档的部分内容),打开build.gradle.kts添加docker-remote-api插件

plugins {
    id("com.bmuschko.docker-remote-api") version "5.2.0"
}

docker {
    // 远程docker服务器地址(如果不设置,默认本地2375端口)
    url.set("tcp://192.168.80.200:2375")
}

到此,docker-remote-api最简单的配置已经完毕,但还不能像maven一样直接远程部署,还需要进行task任务的项目打包和docker远程部署

val copyJarToDocker by tasks.creating(Copy::class) {
    dependsOn(tasks.bootJar)
    from("build/libs")
    into("src/main/docker")
    include("${project.name}-${project.version}.jar")
}

val buildGradleDockerImage by tasks.creating(DockerBuildImage::class) {
    dependsOn(copyJarToDocker)
    inputDir.set(file("src/main/docker"))
    tags.add("${project.name}:0.0.1")
}

保存后,执行以下命令

~$ ./gradlew buildGradleDockerImage
dockerSuccess

看到执行成功后,远程登录80.200的服务,看下docker镜像

dockerImages

小思考

  • 学有余力的童鞋,可以思考下为了保证生产环境的安全性,如何创建docker的授权登录机制?
  • 如何利用gradle-docker-plugin这个插件,通过gradle task来自动创建docker容器,并在创建后自动运行容器,结束后自动销毁容器,并能监听容器日志?

欢迎有兴趣的童鞋跟山姆留言,大家一起讨论,一起学习,一起进步_

文献参考

【demo地址】(https://github.com/lenvonsam/mvhello.git)
【docker官网】(https://docs.docker.com)
【docker介绍】(https://www.cnblogs.com/boshen-hzb/p/6400272.html)
【kotlin介绍】(https://www.runoob.com/kotlin/kotlin-tutorial.html)
【gradle(DSL)】(https://docs.gradle.org/current/dsl/)
【gradle-docker-plugin文档】(https://bmuschko.github.io/gradle-docker-plugin/)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,108评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,699评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,812评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,236评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,583评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,739评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,957评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,704评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,447评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,643评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,133评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,486评论 3 256
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,151评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,889评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,782评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,681评论 2 272

推荐阅读更多精彩内容