当前位置:   article > 正文

Docker搭建Vue+springBoot项目_docker vue springboot

docker vue springboot

目录

一、将SpringBoot项目和Vue项目打包

1.Vue项目中的vue.config.js文件

2.SpringBoot项目配置文件

3.打包vue项目

4.打包SpringBoot项目

二、开始部署

1.准备Nginx和Mysql的镜像

2.创建对应的挂载目录

3.在任意地方创建一个文件夹,用于存放docker-compose.yml文件以及需要部署的jar包

编写dockerfile文件

编写docker-compose.yml文件

4.在docker-compose.yml文件的目录下运行:


一、将SpringBoot项目和Vue项目打包

1.Vue项目中的vue.config.js文件

  1. const { defineConfig } = require('@vue/cli-service')
  2. module.exports = defineConfig({
  3. transpileDependencies: true,
  4. devServer: {
  5. proxy: {
  6. '/api': {
  7. target: 'http://192.168.187.131:8081',
  8. changeOrigin: true,
  9. pathRewrite: {
  10. '^/api': ''
  11. }
  12. }
  13. }
  14. },
  15. publicPath: '/'
  16. })

这里配置了一下代理服务器用来解决跨域问题,以及构建项目后的路径,就不过多阐述了

2.SpringBoot项目配置文件

  1. # 数据源
  2. spring:
  3. datasource:
  4. druid:
  5. driver-class-name: com.mysql.cj.jdbc.Driver
  6. # 注意:这里的连接地址写为mysql是后面使用docker-compose搭建环境的mysql的服务名
  7. url: jdbc:mysql://mysql:3306/bkdb?useUnicode=true&zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8&useSSL=false
  8. username: root
  9. password: 123456
  10. main:
  11. banner-mode: off
  12. mvc:
  13. static-path-pattern: /static/**
  14. web:
  15. resources:
  16. static-locations: classpath:/static/
  17. # 服务器端口号
  18. server:
  19. port: 8081
  20. #mybatis映射文件与别名
  21. mybatis:
  22. mapper-locations: classpath:com/xuhuan/mapper/*.xml
  23. type-aliases-package: com.xuhuan.pojo
  24. # MP全局配置
  25. mybatis-plus:
  26. global-config:
  27. db-config:
  28. # 主键自增长
  29. id-type: auto
  30. type-aliases-package: com.xuhuan.pojo

除了连接mysql的url有所不同外,其他的都是按照实际需求来配置

3.打包vue项目

npm run build

4.打包SpringBoot项目

install一下,target中的jar包就是目标文件了

二、开始部署

这里使用虚拟机(CentOS7)来演示吧

docker 和 docker-compose的安装就不演示,请自行搜索一番

1.准备Nginx和Mysql的镜像

  1. docker pull Nginx # 这里默认使用最新版(latest)
  2. docker pull mysql:5.7.25 # mysql使用5.7.25版本的

2.创建对应的挂载目录

这里需要挂载的就是Nginx的配置文件,html文件夹,以及log文件夹

将其创建出

  1. mkdir /tmp/nginx/conf/ # 创建conf目录
  2. # cd 进去
  3. cd /tmp/nginx/conf/
  4. # 先创建一个nginx.conf,待会儿再编写配置内容
  5. touch nginx.conf
  6. # 创建用于挂载的html文件夹
  7. mkdir /tmp/nginx/html
  8. # 创建log文件夹
  9. mkidr /tmp/nginx/log

编写nginx.conf配置文件

  1. user nginx;
  2. worker_processes auto;
  3. error_log /var/log/nginx/error.log notice;
  4. pid /var/run/nginx.pid;
  5. events {
  6. worker_connections 1024;
  7. }
  8. http {
  9. include /etc/nginx/mime.types;
  10. default_type application/octet-stream;
  11. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  12. '$status $body_bytes_sent "$http_referer" '
  13. '"$http_user_agent" "$http_x_forwarded_for"';
  14. access_log /var/log/nginx/access.log main;
  15. sendfile on;
  16. #tcp_nopush on;
  17. keepalive_timeout 65;
  18. server {
  19. #监听端口
  20. listen 80;
  21. #静态资源目录
  22. #root home/;
  23. location / {
  24. root /usr/share/nginx/html;
  25. index index.html;
  26. }
  27. #vue项目中的请求地址前面都需要加上api
  28. #发起请求的代理配置,地址包含/api的会全部替换地址并转发到proxy_pass下的地址
  29. location /api/ {
  30. rewrite ^/b/(.*)$ /$1 break;
  31. proxy_pass http://192.168.187.131:8081/;
  32. }
  33. }
  34. #gzip on;
  35. include /etc/nginx/conf.d/*.conf;
  36. }

3.在任意地方创建一个文件夹,用于存放docker-compose.yml文件以及需要部署的jar包

目录结构类似于下方这样吧

编写dockerfile文件

  1. # 指定基础镜像
  2. FROM java:8
  3. # 拷贝java项目的包
  4. COPY ./books_system.jar /tmp/app.jar
  5. # 暴露端口
  6. EXPOSE 8081
  7. # 入口,java项目的启动命令
  8. ENTRYPOINT java -jar /tmp/app.jar

编写docker-compose.yml文件

  1. version: "3"
  2. services:
  3. # nginx服务
  4. nginx:
  5. image: nginx:latest
  6. ports:
  7. - 80:80
  8. # 挂载目录,这里对应刚才创建的配置文件和牡蛎
  9. volumes:
  10. - /tmp/nginx/html:/usr/share/nginx/html
  11. - /tmp/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
  12. - /tmp/nginx/log:/var/log/nginx
  13. privileged: true
  14. # mysql服务
  15. mysql:
  16. image: mysql:5.7.25
  17. ports:
  18. - 3306:3306
  19. environment:
  20. - MYSQL_ROOT_PASSWORD=123456
  21. # SpringBoot项目,这里服务名就可以随意写了
  22. book_system:
  23. # 镜像名这样填即可,build完成后会生成这样的镜像
  24. image: book_system:latest
  25. # 表示运行当前目录下book文件夹下的dockerfile来构建镜像
  26. build: ./book
  27. # 端口
  28. ports:
  29. - 8081:8081
  30. # 依赖于mysql等待mysql启动完成后再启动这个服务
  31. depends_on:
  32. - mysql

4.在docker-compose.yml文件的目录下运行:

docker-compose up -d

开始自动部署!

至此完成部署。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号