使用Docker部署我的第一个SpringBoot项目

361 阅读4分钟

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项目的全部内容啦,大家多动手试试吧。可能会有细节没有把握到,请多多包涵,我们下期见吧。