Hi,我们又见面啦。最近Storm在研究docker部署相关的知识点,也是踩了不少坑,于是就有了下面的这篇文章,给准备捣鼓这一块的小伙伴一点前车之鉴,话不过说我们开始动手吧。
ps:还是忍不住安利一波,因为Storm之前一直使用的主力生产工具是Eclipse,公司里面也是统一使用的这个工具,为此老大还自己研发了一些插件,这款IDE还是相当强大的。
但是从两个月前上手idea开始就一发不可收拾,再也回不去了,墙裂安利大家去折腾一下,你也会爱不释手的。不用担心说团队的原因或者快捷键等等,因为这些都已经有人踩过坑啦。解决方案都是现成的,工欲善其事必先利其器,所以蠢蠢欲动不如行动吧,哈哈哈。
写在前面的话
在这篇文章当中我不过多介绍SpringBoot项目的构建过程,因为随便搜一下就有一堆。简单的几项配置,就能跑起来,重要的还是需要检查一下你的环境。包括IDE,Maven,Java等等
安装docker
下载传送门:docker官网
根据你的开发环境,选择安装相应的版本(实测基本使用mac和win是类似的)
安装就是傻瓜式的软件安装,注意设置你的docker镜像存放位置,因为它默认是放在C:盘的
设置docker
启动docker后,在任务栏处会看到一个docker的小鲸鱼图标,右键打开Settings切换到General选项
勾选 Expose daemon on tcp://localhost:2375 without TLS
将docker连接的端口暴露到开发环境当中,便于我们连接docker操作我们的镜像和容器
idea配置docker环境
接下来我们需要在idea中安装一个docker的插件Docker integration
打开idea,从File->Settings->Plugins->Install JetBrains plugin进入插件安装界面,在搜索框中输入docker,可以看到Docker integration,点击右边的Install按钮进行安装。
安装后重启idea,从File->Settings->Build,Execution,Deployment->Docker打开配置界面
新建一个docker连接,名字随意,将上面我们勾选的地址复制到TCP socket选项中 看到下方窗体中出现Connection Successful就说明配置成功啦
部署项目到docker
项目打包
首先我们要先将我们构建好的SpringBoot项目打包,这里使用到maven的构建工具。
在SpringBoot项目的pom文件中加入如下配置:
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>SpringBootApp</id>
<phase>package</phase>
<configuration>
<tasks>
<copy todir="docker" file="target/${project.artifactId}- ${project.version}.${project.packaging}" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
构建镜像 部署docker
到这一步,我们就要开始进入关键点啦,前面都是准备工作。
首先,在项目的根目录(注意是根,不是src或者mian)新建一个docker文件夹用于存放docker相关的文件
新建一个Dockerfile文件 (这个是镜像构建文件,即告诉docker需要为我们的项目准备什么环境)
具体内容如下:
FROM java:8u111
VOLUME /tmp
ADD *.jar app.jar
EXPOSE 8088
ENTRYPOINT ["java","-jar","/app.jar"]
# Ubuntu 时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
如上配置,说明我们的项目运行在java8环境当中,使用的是Ubuntu系统的环境,将8088端口映射到docker环境之外,我们就可以在宿主机(开发机器)访问到这个端口,其他配置具体细节可以自行Google
配置好Dockerfile之后,我们右键它create docker/Dockerfile 在docker配置对话框中输入容器的名称
添加端口映射8088:8088
添加在构建之前运行的maven命令:
clean package -Dmaven.test.skip = true
构建项目时,会自动将target下打好的jar复制到项目根目录,我们发布到docker时会使用这个jar。
运行
一切准备就绪,接下来我们右键运行Dockerfile文件,在docker文件夹下就会出现打好的项目jar包,docker就开始构建镜像,配置容器,然后发布jar包到容器的tmp目录下,最后启动项目,你就可以在插件的控制台看到Spring的Banner以及相关启动日志啦。
结语
以上就是这一期docker部署我的第一个SpringBoot项目的全部内容啦,大家多动手试试吧。可能会有细节没有把握到,请多多包涵,我们下期见吧。