当前位置:   article > 正文

DockerCompose部署RuoYi-Vue前后端分离项目_若依 docker compose

若依 docker compose

目录

引言

1. 安装环境拉取镜像后端代码打包处理

2. 设置容器的挂载目录 

MySQL挂载:

Nginx挂载:

3. docker-compose.yml文件的编写 

DockCompose官方文档

4. 项目的启动

4.1 运行项目

4.2 关闭项目 

4.3 DockerCompose的基本语法​编辑


引言:

参考Docker部署RuoYi-Vue前后端分离项目大家可以看到,我们部署一个简单的java项目,其中包含4个容器:

  • MySQL

  • Redis

  • Nginx

  • Java项目

而稍微复杂的项目,其中还会有各种各样的其它中间件,需要部署的东西远不止4个。如果还像之前那样手动的逐一部署,就太麻烦了。

而Docker Compose就可以帮助我们实现多个相互关联的Docker容器的快速部署。它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器。

感谢黑马程序员!!!


1. 安装环境拉取镜像后端代码打包处理

首先我们要安装docker环境,然后拉取mysql、nginx、redis镜像,然后在/root目录下面创建项目jar包和制作项目镜像的Dockerfile文件。(安装docker、拉取镜像、打jar包以及Dockerfile都在Docker部署RuoYi-Vue前后端分离项目这篇文章中) 



2. 设置容器的挂载目录 

我们要知道数据卷的概念以及用法,参考2.2 数据卷

然后我们创建MySQL和Nginx容器中文件要挂载的文件夹目录:这两个文件夹我放在/root目录下了

MySQL挂载:

        把mysql的配置文件放到conf目录下,数据库sql文件放到init目录下,挂载的目的第一是方便管理,第二是不会因为移除mysql容器而丢失数据库里面的资源;

        因为我们这个项目sql文件中没有创建数据库的指令,所以我们要创建数据库容器以及设置好挂载然后远程连接数据库创建ry-vue数据库然后导入sql文件,完成后删除mysql容器。

  1. # 创建mysql容器并挂载
  2. docker run -d \
  3. --name mysql \
  4. -p 3306:3306 \
  5. -e TZ=Asia/Shanghai \
  6. -e MYSQL_ROOT_PASSWORD=123 \
  7. -v ./mysql/data:/var/lib/mysql \
  8. -v ./mysql/conf:/etc/mysql/conf.d \
  9. -v ./mysql/init:/docker-entrypoint-initdb.d \
  10. --network hmall
  11. mysql
  12. #删除mysql容器,-f是强制删除
  13. docker rm -f mysql

Nginx挂载:

        把前端项目打包的文件放到我们nginx数据卷挂载的/root/nginx/html目录下

如果有配置文件就直接放到nginx目录下,然后把docker-compose.yml文件中下面代码打开:

# - "/root/nginx/nginx.conf:/etc/nginx/nginx.conf"

3. docker-compose.yml文件的编写 

然后就是最关键的docker-compose.yml文件的编写,详情请参考3.3 DockerCompose

  1. version: "3.8"
  2. services:
  3. mysql:
  4. image: mysql
  5. container_name: mysql
  6. ports:
  7. - "3306:3306"
  8. environment:
  9. TZ: Asia/Shanghai
  10. MYSQL_ROOT_PASSWORD: 123
  11. volumes:
  12. - "/root/mysql/conf:/etc/mysql/conf.d"
  13. - "/root/mysql/data:/var/lib/mysql"
  14. - "/root/mysql/init:/docker-entrypoint-initdb.d"
  15. networks:
  16. - ry-net
  17. ruoyi-vue:
  18. build:
  19. context: /root/ruoyi-vue
  20. dockerfile: Dockerfile
  21. container_name: ruoyi-vue
  22. ports:
  23. - "8080:8080"
  24. networks:
  25. - ry-net
  26. depends_on:
  27. - mysql
  28. - redis
  29. nginx:
  30. image: nginx
  31. container_name: nginx
  32. ports:
  33. - "80:80"
  34. volumes:
  35. # - "/root/nginx/nginx.conf:/etc/nginx/nginx.conf"
  36. - "/root/nginx/html:/usr/share/nginx/html"
  37. depends_on:
  38. - ruoyi-vue
  39. networks:
  40. - ry-net
  41. redis:
  42. image: redis
  43. container_name: redis
  44. ports:
  45. - "6379:6379"
  46. networks:
  47. - ry-net
  48. networks:
  49. ry-net:
  50. name: ruoyinet

 因为我们docker-compose.yml文件中的配置用的都是绝对路径,所以这个文件放放到哪里都可以,建议放到项目的文件夹里面方便管理。

DockCompose官方文档

DockCompose官方文档


4. 项目的启动

4.1 运行项目

一切准备就绪后直接输入命令启动:

  1. # 启动所有容器, -d 参数是后台启动
  2. docker compose up -d

 出现下图我们就完成所有的部署了!

 现在可以通过IP+端口来访问我们的前后端分离项目了,任何前后端分离的项目部署都是相通的,快来完成一个属于你的前后端分离项目的部署吧!

4.2 关闭项目 

关闭项目,直接输入:

  1. # 停止并移除所有容器、网络
  2. docker compose down

出现下图我们就停止并移除所有容器、网络了 

4.3 DockerCompose的基本语法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/991240
推荐阅读
相关标签
  

闽ICP备14008679号