第一步:将项目打jar包

达瓦里氏~~ jar包的打包方式就不过对赘述了,用过Maven的同志们一定都知道。

鉴于我是用的是STS(和Eclipse界面一样)开发的项目,二话不说直接打包。

右键你的项目—>选择RUN AS—>Maven install打包

docker idea多模块打包 docker打包web项目_java


这里要说一下,我设置的是打包为jar包模式,是方便开发和部署。

而SpringBoot既可以打成war发布,也可以jar包发布。
打jar包:SpringBoot内置了Tomcat,所以你的项目直接以jar运行,其实就启动了内置的Tomcat,只不tomcat的配置要依靠spring boot的配置文件。并且没有tomcat相关日志,只能依靠jar包应用自带的日志记录。但是贵在方便快捷,适用于简单应用,要求不高的情况下。
打war包:需要安装tomcat,然后放到waeapps目录下运行tomcat,tomcat会自行解压你的项目并管理,也可以灵活选择tomcat版本。相对打成jar包来说没那么快速方便,其实还是要看你的业务需求了。

紧接我们的步骤,找到你的jar包,here~这里:

docker idea多模块打包 docker打包web项目_jar_02


通常来说,我们可以直接在有JRE环境的PC设备上运行这个jar包程序,就好比这样:

进入你web-0.0.10SNAPSHOT.jar所在的目录下,执行下面这条指令即可开启SpringBoot内置的Tomcat容器,启动你的项目,就像你再开发环境下启动SpringBootApplication一样方便快捷。

CMD命令窗口启动项目命令

java -jar web-0.0.1-SNAPSHOT.jar

启动后效果如下:

docker idea多模块打包 docker打包web项目_java_03


当然,在未部署的情况下,我的application.yml关联的Mysql数据库还是本地Mysql

#关于Mysql连接的配置
server:
  port: 80
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/Blog?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
    username: root
    password: 123456

第二步:将jar包+附带的文件上传至服务器

使用WinSCP或者X-Shell将jar包还有项目所需要的文件都上传到Linux的指定目录下

(目录可以自己建一个)

这里我上传了我的jar包还有一个WeatherSetting.md文件(网页中的天气配置信息)到Linux服务器mySpringBootWeb目录下了。

docker idea多模块打包 docker打包web项目_jar_04


上传后用Putty登等服务器,查看一下目录下的文件是否完整。

docker idea多模块打包 docker打包web项目_java_05


OK确认无误,可以开始编写我们的DockerFile构建容器了。

如果不了解Docker技术的~达瓦里氏 可以自行百度学习一下。

Docker:Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

如图,编写Web_DockerFile内容如下:

FROM java:8
MAINTAINER Weikisa
ADD web-0.0.1-SNAPSHOT.jar myBlog.jar
CPOY WeatherSetting.md WeatherSetting.md
EXPOSE 80
ENTRYPOINT ["java","-jar","/myBlog.jar"]

docker idea多模块打包 docker打包web项目_jar_06


我们就使用这段DockerFile来构建一个我们的Web项目镜像。

在mySpringBootWeb目录下执行如下命令:

在mySpringBootWeb目录下 使用DockerFile(Web_DockerFile) 
#构建镜像命名为blog 最后有一个点(.)  1.1为自定义版本号 切记最后结尾有个点
docker build -f /mySpringBootWeb/Web_DockerFile -t blog:1.1 .

如此一来就会生成一个包含我们项目的小型的容器:

docker idea多模块打包 docker打包web项目_java_07


我们可以使用docker命令查看一下我们生成的镜像。

docker iamges

docker idea多模块打包 docker打包web项目_linux_08


这里我重新生成了blog1.1的镜像,因为之前我已经更新到版本blog1.2了,所以blog1.1似乎是ID和1.2的一样。但是CREATED时间却没有改变,还是2个月前。不过不影响接下来的操作,只是顺带一提。

构建容器,启动Web项目

FROM java:8
MAINTAINER Weikisa
ADD web-0.0.1-SNAPSHOT.jar myBlog.jar
CPOY WeatherSetting.md WeatherSetting.md
EXPOSE 80
ENTRYPOINT ["java","-jar","/myBlog.jar"]

我们可以从DockerFIle里看到,我们已经将我们的项目jar包起了个别名叫myBlog.jar

ENTRYPOINT ["java","-jar","/myBlog.jar"]

最后的命令及包含了我们启动项目的命令,这和我们开头说的java -jar web-0.0.1-SNAPSHOT.jar命令其实一样,容器生成后会自动执行这条命令,这样我们的项目就会在容器中开始启动了。
执行如下docker命令,构建新的容器并启动我们的项目。

docker run -it -p 80:80 --name weikisa_blog blog:1.1

容器会在后台生成并启动,我们可以使用命令查看一下正在运行的容器:

docker ps

docker idea多模块打包 docker打包web项目_docker idea多模块打包_09


可以看到,容器已经正在运行,并且映射到端口80。

OK,由此我们的项目就已经部署成功,接下来只用把Mysql数据库同步(拷贝)过来,就可以在Internet正常访问啦。