云服务器免费试用

使用Docker部署SpringBoot+Vue博客系统教程(dockercompose部署springboot)

服务器知识 0 408
本文目录 显示 1. Docker化改造 1.1. 改造后目录结构 2. Docker化过程的困难和解决方法 2.1. spring-boot双配置切换 2.2. 动态配置axios的baseUrl地址 2.3. Nuxt在Docker中无法访问到宿主机ip问题 2.3.1. 这样就产生了问题 2.3.2. 如何解决呢 2.4. Dockerfile的环境参数统一设置 3. 总结 4. 推荐阅读

在今年年初的时候,完成了自己的一个Fame博客系统的实现,当时也做了一篇博文Spring-boot+Vue = Fame 写blog的一次小结,作为记录和介绍。从完成实现到现在,也断断续续的根据实际的使用情况进行更新。

只不过每次上线部署的时候都觉得有些麻烦,因为我的服务器内存太小,每次即使只更新了前台部分(fame-front)的代码,在执行npm build的时候都还必须把我的后端服务(fame-server)的进程关掉,不然会造成服务器卡死(惨啊)。

使用Docker部署SpringBoot+Vue博客系统教程(dockercompose部署springboot)

而且这个项目是前后端分离的,博客前台页面还为了SEO用了Nuxt框架,假如是第一次部署或者要服务器迁移的话,麻烦的要死啊,部署一次的话要以下步骤:

  1. 安装mysql,修改相关配置文件,设置编码时区等,然后重启
  2. 下载安装java,配置java环境
  3. 下载安装maven,配置maven环境
  4. 下载安装nginx,修改配置文件,设计反向代理等
  5. 启动spring-boot项目
  6. 打包vue项目npm install,npm run build等
  7. 启动nuxt项目,npm install,npm run start等

如果能够顺利的完成这七个步骤算是幸运儿了,假如中间哪个步骤报错出了问题,可能还要回头查找哪个步骤出了问题,然后又重新部署。

在这些需求面前,Docker就是解决这些问题的大杀器。无论是其虚拟化技术隔离各个容器使其资源互不影响,还是一致的运行环境,以及docker-compose的一键部署,都完美的解决了上述问题。

项目地址:https://github.com/zzzzbw/Fame

Docker和Docker-compose安装

Docker和Docker-compose的功能和使用可以看线上的一个中文文档Docker — 从入门到实践

下面是Centos7安装和配置Docker以及Docker-compose的shell脚本,其他操作系统可以参考修改来安装。其中Docker版本为docker-ce,Docker-compose版本为1.22.0

#!/bin/sh### 更新 ###yum -y update### 安装docker #### 安装一些必要的系统工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 添加软件源信息sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 更新 yum 缓存sudo yum makecache fast# 安装 Docker-cesudo yum -y install docker-ce# 启动docker并设置为开机启动(centos7)systemctl  start docker.servicesystemctl  enable docker.service# 替换docker为国内源echo '{"registry-mirrors": ["https://registry.docker-cn.com"],"live-restore": true}' > /etc/docker/daemon.jsonsystemctl restart docker# 安装dokcer-composesudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose# 安装命令补全工具yum -y install bash-completioncurl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose### 安装docker结束 ###

Docker化改造

改造后目录结构

先看一下改造后的项目的结构

├─Fame│  │  .env                            // docker-compose环境参数配置文件│  │  docker-compose.yml              // docker-compose文件│  ├─fame-docker│  │  │  fame-front-Dockerfile        // fame-front的Dockerfile文件│  │  │  fame-server-Dockerfile       // fame-server的Dockerfile文件│  │  │  │  │  ├─fame-admin│  │  │      fame-admin-Dockerfile    // fame-admin的Dockerfile文件│  │  │      nginx.conf               // fame-admin的nginx服务器配置文件│  │  │      │  │  ├─fame-mysql│  │  │      fame-mysql-Dockerfile    // mysql的Dockerfile文件│  │  │      mysqld.cnf               // mysql的配置文件mysqld.cnf│  │  │      │  │  └─fame-nginx│  │          nginx-Dockerfile        // 整个项目的nginx服务器的Dockerfile文件│  │          nginx.conf              // 整个项目的nginx的配置文件│  │          │  ├─fame-admin   // 博客管理后台,基于Vue+elementui│  ├─fame-front   // 博客前端,基于Nuxt│  └─fame-server  // 博客服务端,基于spring-boot

为了不破坏原有项目的结构,无论前端还是后端的docker的相关配置文件全部提取出来,单独放在了fame-docker文件夹中。

docker-compose.yml放在项目根目录下,直接在根目录运行命令:docker-compose up -d

[root@localhost Fame]# docker-compose up -dStarting fame-front ... Starting fame-admin ... Starting fame-front ... doneStarting fame-admin ... doneStarting fame-nginx ... done

就启动项目了,再也不用重复繁琐的步骤!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 使用Docker部署SpringBoot+Vue博客系统教程(dockercompose部署springboot)
本文地址: https://solustack.com/4588.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。