超详细Docker部署SpringBoot+Vue项目(三更博客项目部署)

项目部署全流程
本文详述了从前端到后端的项目部署全过程,包括环境配置、Docker容器化、数据库及缓存服务配置等关键技术环节。

该文章已同步收录到我的博客网站,欢迎浏览我的博客网站,xhang’s blog

笔者踩坑无数、吐血整理,如果帮到你了能给我点个赞,点点关注吗,嘿嘿。
项目地址:
后端
博客前台
博客后台

1.项目部署规划

  1. 后端多模块项目blog以及各模块运行端口

前台服务模块sangeng-blog->7777,后台服务模块sangeng-admin->8989,公共模块sangeng-framework

  1. 前端前台Vue项目:sg-blog-vue->8093

  2. 前端后台Vue项目:sg-vue-admin->8094

  3. docker所需镜像

    • java:8(jdk1.8)

    • mysql:8.0.19

    • redis:6.0.8

    • nginx:1.18.0

  4. 部署步骤

    • 安装docker

    • 拉取java:8镜像,后端项目使用maven打包,上传jar包到服务器指定目录/mydata,编写Dockerfile文件,将后端项目打成镜像文件。

    • 拉取mysql:8.0.19、redis:6.0.8、nginx:1.18.0镜像。

    • 编写docker-compose.yml文件,使用docker-compose容器编排管理容器运行。

    • 配置mysql,导入sql文件

    • 配置redis,修改redis.conf文件

    • 配置nginx,将打好包的Vue项目放到html目录下,并配置nginx.conf文件

    • 测试运行

    • 镜像上传阿里云镜像仓库

  5. 使用工具:

    • IDEA
    • Navicat
    • ApiFox
    • Mobaxterm

2.前置工作

2.1修改后端配置文件ip

修改后端项目的application.yaml文件,将MySQL服务和Redis服务的localhost修改为服务器ip

2.2修改前端Vue项目运行端口

​ 前台Vue项目修改项目运行端口是在config文件夹下的index.js文件当中,运行端口由原来的80变为8093

image-20221120141647866

后台Vue项目修改项目运行端口是在vue.config.js文件当中,运行端口由原来的8081变为8094

image-20221120141934752

2.3修改前端对应的服务器ip

  1. 使用快捷键ctrl+shift+R全局搜索,将原来的localhost更改为对应的服务器ip

  2. 前台Vue项目

image-20221120142925735
  1. 后台Vue项目
image-20221120142906304

将原来的开发环境和生产环境的VUE_APP_BASE_API都更改为你的服务器ip和后端子模块端口

image-20221121092519962

image-20221121092622761

2.4后端项目打包

  1. 后端项目使用maven打包

​ 打包后在target目录下生成对应模块的jar包

打包出现的问题:我在打包完成后查看jar包,发现只有16kb,然后试在本地运行jar包测试,果然有错误,报错信息是:xxxxx-0.0.1-SNAPSHOT.jar中没有主清单属性,原因是不能找到程序的主类,需要修改父pom文件和子模块sangeng-blog的pom文件和子模块sangeng-admin的pom文件,修改如下:

2.4.1解决打包问题

	这是要使用的SpringBoot版本要在2.6以上,我的为2.6.11
  1. 父pom
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.10.1</version>
        </plugin>
        <!-- 此插件必须放在父 POM 中  -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <executions>
                <!--
                执行本插件的方法为,在主目录下执行如下命令:
                mvn package assembly:single

                对于 IntelliJ IDEA,生成的 JAR 包位于每个模块下的文件夹 target
                -->
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
   
### 部署Spring BootVue应用程序到Docker 为了在Linux环境中利用Docker部署Spring BootVue组成的全栈应用,需遵循一系列操作流程来确保前后端服务能够顺利运行并相互协作。 #### 准备工作环境 首先,在本地机器安装好Docker引擎之后,通过克隆指定仓库获取项目源码[^3]: ```bash git clone https://github.com/boylegu/SpringBoot-vue.git cd SpringBoot-vue/ ``` #### 构建Docker镜像 接着针对项目的不同部分分别创建对应的Dockerfile文件用于定义构建过程中的各项指令。对于前端(Vue.js),通常会采用Node.js作为基础镜像;而后端(Spring Boot)则多选用OpenJDK等Java运行时环境为基础镜像。完成配置后可以执行如下命令来进行镜像的制作: ```bash docker build -t springboot-vue-frontend ./vue-app docker build -t springboot-vue-backend ./spring-boot-app ``` #### 启动容器网络和服务 考虑到前后端通信的需求以及数据库连接等问题,建议新建一个自定义桥接网络以便于各组件间稳定地交互。同时为简化管理可借助`docker-compose.yml`文件描述整个系统的架构布局,包括但不限于MySQL、Redis等依赖的服务及其启动参数设定(如密码)[^4]: ```yaml version: '3' services: db: image: mysql:latest environment: MYSQL_ROOT_PASSWORD: jeecg123456 cache: image: redis:alpine command: ["redis-server", "--requirepass", "jeecg123456"] backend: depends_on: - db - cache ... frontend: ports: - "80:80" ... networks: default: driver: bridge ``` 最后只需一条简单的命令就能按照上述YAML文档所指示的内容一键拉起全部所需资源: ```bash docker-compose up -d ``` 这样就完成了基于Linux平台下使用Docker技术快速搭建一套完整的Spring BootVue开发框架的任务[^1]。
评论 72
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值