SpringBoot 多模块项目打包部署保姆级教程 |
您所在的位置:网站首页 › springboot项目打包部署到服务器 › SpringBoot 多模块项目打包部署保姆级教程 |
SpringBoot 多模块项目打包部署教程! SpringBoot 多模块项目打包部署教程!首先,使用docker安装环境配置(jdk安装不再展示)。 此次部署使用到的技术栈有redis以及mysql,技术不多,但也够吃一桌。 1、环境准备 # 1.安装docker # 2.docker使用测试 # 3.使用docker安装Mysql # 4.使用docker安装redis 1-1、安装docker(Vm或服务器) #1.需要的安装包 yum install -y yum-utils #2.设置 阿里云 镜像的仓库 yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #3.更新yum软件包索引 yum makecache fast #4.安装docker docker-ce 社区版 docker-ee 企业版 yum install docker-ce dokcer-ce-cli containerd.io #5.启动docker systemctl start docker #6.查看docker 版本 docker version #7.配置阿里云加速镜像 vim /etc/docker/daemon.json # 7.1 添加如下内容,具体地址自己申请咯 # 创建文件夹 mkdir -p /etc/docker vim /etc/docker/daemon.json { "registry-mirrors": ["https://****.mirror.aliyuncs.com"] } # 7.2重启服务 systemctl daemon-reload systemctl restart docke 1-2、docker使用测试拉取hello-world镜像 (docker pull hello-world) 当拉取成功说明docker环境已经安装成功! 1-3、使用docker安装Mysql拉取Mysql镜像 docker pull mysql:8.0.16 ==> docker pull 镜像名称:镜像版本 docker images 查看所有镜像我们发现mysql已经拉取成功了! 启动并挂载镜像 -d: 后台运行容器,也可以使用镜像id -p 将容器的端口映射到本机的端口 -v 将主机目录挂载到容器的目录 -e 设置参数 MYSQL_ROOT_PASSWORD 指定登录密码 docker run -d --name mysql -p 3306:3306 -v /opt/containerd/mysql/conf:/etc/mysql/conf.d -v /opt/containerd/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.16我们发现mysql容器已经启动成功! 进入容器内部查看 docker exec -it 88ea62512549 /bin/bash ==> docker exec -it 容器id /bin/bash进入之后我们可以登陆mysql查看: 我们发现mysql已经可以正常登陆了。 退出容器内部但不停止容器运行 Ctrl+P+Q 退出容器内部但不停止容器运行 exit 退出容器内部并停止容器运行最后我们使用 navicat 远程连接测试 我们找到我们服务器或者虚拟机的ip地址来连接我们的mysql, 如果使用的是mysql记得放行3306端口,关于如何放行这里不做赘述。 我们发现已经远程连接成功了。 有的小伙伴会问了,谁知道到底有没有成功,mysql都有这个几个数据库啊! 那我们直接在连接到的mysql中新加一个数据库看看docker容器中的mysql是否会出现这个表不就行了吗。 我在mysql中新建了一个blog数据库。 我们重新进入docker容器中,登陆MySQL查看。 这下我们发现确实多了一个blog数据库,这就可以说明我们mysql服务已经成功了! 1-4、docker安装redis拉取redis镜像 [root@VM-8-3-centos /]# docker pull redis Using default tag: latest latest: Pulling from library/redis a330b6cecb98: Pull complete 14bfbab96d75: Pull complete 8b3e2d14a955: Pull complete 5da5e1b21a2f: Pull complete 6af3a5ca4596: Pull complete 4f9efe5b47a5: Pull complete Digest: sha256:e595e79c05c7690f50ef0136acc9d932d65d8b2ce7915d26a68ca3fb41a7db61 Status: Downloaded newer image for redis:latest docker.io/library/redis:latest [root@VM-8-3-centos /]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis latest 02c7f2054405 5 days ago 105MB mysql 8.0.16 de764ad211de 2 years ago 443MB运行redis镜像 docker run --name redis -p 6379:6379 -d redis redis-server --appendonly yes # -p:端口映射 # -d:后台运行 # redis-server --appendonly yes:开启缓存模式,可以存储至硬盘中 [root@VM-8-3-centos /]# docker run --name redis -p 6379:6379 -d redis redis-server --appendonly yes 364d58c2b983d92d0cb14359c8176296f806277dffbc0509a07004f7e585ca38 [root@VM-8-3-centos /]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 364d58c2b983 redis "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis 88ea62512549 mysql:8.0.16 "docker-entrypoint.s…" 7 hours ago Up 7 hours 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql测试reids 我们使用给可视化工具连接redis,这里我使用的是Reids Desktop Manger,大家感兴趣的可以去下载! 我们host填写我们的ip地址,服务器要去放行6379端口。由于没有设置密码,我们只需要填写ip和端口即可,端口我们使用的默认的6379。 这里报错显示连接错误是因为服务器没有开放对应端口,我们去开放端口(这里使用的是腾讯云,阿里云则是去开放安全组)然后再进行连接。 在这里我们放通了6379端口再进行测试 这次我们发现已经成功连接了。 2、SpringBoot 多模块项目打包 # 1.修改配置文件 # 2.打包项目 2-1、修改配置文件我们修改ip为参数,因为我们在项目部署之后不可能再去修改我们的源代码了。假设redis出现问题需要更换,我们不可能再去修改ip,所以我们使用参数来进代替,在docker中使用--link进行容器的关联即可。 不再才用上述方法,会有小问题,大家直接使用ip地址即可。 2-2、打包项目很明显我的项目是分有五个模块的,我们在对多模块进行打包时只需要拿取web模块的jar包即可。(其他模块是直接或者间接依赖于web模块,具体请自行百度) 所以我们需要对web的pom进行一定的配置 我们需要在web模块的pom添加这一段配置信息 org.springframework.boot spring-boot-maven-plugin 2.0.1.RELEASE repackage打开右边侧边栏的依赖管理,找到父工程项目。首先进行 clean ,之后进行 package。 我们去web目录下的target中找到jar文件 我把他拷贝出来换了个名字 我们可以在cmd中 使用 java -jar 命令来运行jar包 但是我们会发现服务是后台接口是无法请求的,因为我们的mysql和redis是有连接成功的。 3、项目部署 # 1.我们使用fxtp将jar包上传到服务器中 # 2.编写Dockerfile # 3.构建镜像 # 4.运行镜像 3-1、上传至服务器 3-2、编写Dockerfile # Dicckerfile 必须和jar包在同一目录下 [root@VM-8-3-centos blog]# vim Dockerfile FROM java:8 EXPOSE 9999 VOLUME /tmp ENV TZ=Asia/Shanghai RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localhosttime && echo "{TZ}" > /etc/timezone ADD nanjustar-blog.jar /app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-jar","/app.jar"] # FROM java:8:表示基于 Jdk8 环境 # EXPOSE 9999:表示对外暴露端口 # VOLUME /tmp:表示挂载在/tmp目录下 # RUN bash -c 'touch /app.jar':表示把jar包添加到镜像服务的根目录中并改名app.jar # ENTRYPOINT ["java","-jar","/app.jar"]:启动命令 3-3、构建镜像 # 构建镜像 注意最后面有一个点 nanjustar为我自定义的镜像名称 docker build -t nanjustar . ---> d23bdf5b1b1b Step 2/8 : EXPOSE 9999 ---> Running in 430864c569e2 Removing intermediate container 430864c569e2 ---> 864d4b4fcea6 Step 3/8 : VOLUME /tmp ---> Running in 8f38028bb40d Removing intermediate container 8f38028bb40d ---> 9e4b8cdf46cc Step 4/8 : ENV TZ=Asia/Shanghai ---> Running in e5f60c461868 Removing intermediate container e5f60c461868 ---> b29a70fda153 Step 5/8 : RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localhosttime && echo "{TZ}" > /etc/timezone ---> Running in 665b55ef516a Removing intermediate container 665b55ef516a ---> e8308e6135f5 Step 6/8 : ADD nanjustar-blog.jar /app.jar ---> a8e790d4947c Step 7/8 : RUN bash -c 'touch /app.jar' ---> Running in ca502827bef2 Removing intermediate container ca502827bef2 ---> ad8adf1e502b Step 8/8 : ENTRYPOINT ["java","-jar","/app.jar"] ---> Running in 195e052a56b4 Removing intermediate container 195e052a56b4 ---> 786a2d1157a4 Successfully built 786a2d1157a4 Successfully tagged nanjustar:latest # 镜像构建完成,使用 docker images 查看 [root@VM-8-3-centos blog]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nanjustar latest 786a2d1157a4 52 seconds ago 759MB redis latest 02c7f2054405 6 days ago 105MB mysql 8.0.16 de764ad211de 2 years ago 443MB java 8 d23bdf5b1b1b 4 years ago 643MB 3-4、运行镜像 #运行镜像 --link 镜像名:参数名 docker run --name nanjublog -p 9999:9999 -d nanjustar cc472a4a22815b79e77f5e112393dc23596ae7cba7d4b3ecbde674683ac217a4 # docker ps 我们会发现我们的镜像已经跑起来了 [root@VM-8-3-centos blog]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc472a4a2281 nanjustar "java -jar /app.jar" 41 seconds ago Up 40 seconds 0.0.0.0:9999->9999/tcp, :::9999->9999/tcp nanjublog 364d58c2b983 redis "docker-entrypoint.s…" 53 minutes ago Up 53 minutes 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis 88ea62512549 mysql:8.0.16 "docker-entrypoint.s…" 8 hours ago Up 8 hours 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql最后我们通过ip访问9999端口,发现访问成功! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |