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文件

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer: {
    proxy: {
      '/api': {
        target: 'http://192.168.187.131:8081',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  },
  publicPath: '/'
})

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

2.SpringBoot项目配置文件

# 数据源
spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      # 注意:这里的连接地址写为mysql是后面使用docker-compose搭建环境的mysql的服务名
      url: jdbc:mysql://mysql:3306/bkdb?useUnicode=true&zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8&useSSL=false
      username: root
      password: 123456
  main:
    banner-mode: off
  mvc:
    static-path-pattern: /static/**
  web:
    resources:
      static-locations: classpath:/static/
# 服务器端口号
server:
  port: 8081

#mybatis映射文件与别名
mybatis:
  mapper-locations: classpath:com/xuhuan/mapper/*.xml
  type-aliases-package: com.xuhuan.pojo
# MP全局配置
mybatis-plus:
  global-config:
    db-config:
      # 主键自增长
      id-type: auto
  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的镜像

docker pull Nginx   # 这里默认使用最新版(latest)

docker pull mysql:5.7.25   # mysql使用5.7.25版本的

2.创建对应的挂载目录

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

将其创建出

mkdir /tmp/nginx/conf/   # 创建conf目录
# cd 进去
cd /tmp/nginx/conf/
# 先创建一个nginx.conf,待会儿再编写配置内容
touch nginx.conf

# 创建用于挂载的html文件夹
mkdir /tmp/nginx/html

# 创建log文件夹
mkidr /tmp/nginx/log

编写nginx.conf配置文件


user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;
    server {
    #监听端口
    listen       80;
    
    #静态资源目录
    #root home/;
    location / {
        root       /usr/share/nginx/html;
        index index.html;
    }
    
    #vue项目中的请求地址前面都需要加上api
    #发起请求的代理配置,地址包含/api的会全部替换地址并转发到proxy_pass下的地址
    location /api/ {
        rewrite ^/b/(.*)$ /$1 break;
        proxy_pass http://192.168.187.131:8081/;
    }
}




    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

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

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

编写dockerfile文件

# 指定基础镜像
FROM java:8

# 拷贝java项目的包
COPY ./books_system.jar /tmp/app.jar

# 暴露端口
EXPOSE 8081

# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

编写docker-compose.yml文件

version: "3"
services:
  # nginx服务
  nginx:
    image: nginx:latest
    ports:
      - 80:80
    # 挂载目录,这里对应刚才创建的配置文件和牡蛎
    volumes:
      - /tmp/nginx/html:/usr/share/nginx/html
      - /tmp/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - /tmp/nginx/log:/var/log/nginx
    privileged: true
  # mysql服务
  mysql:
    image: mysql:5.7.25
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=123456
  # SpringBoot项目,这里服务名就可以随意写了
  book_system:
    # 镜像名这样填即可,build完成后会生成这样的镜像
    image: book_system:latest
    # 表示运行当前目录下book文件夹下的dockerfile来构建镜像
    build: ./book
    # 端口
    ports:
      - 8081:8081
    # 依赖于mysql等待mysql启动完成后再启动这个服务
    depends_on:
      - mysql

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

docker-compose up -d

开始自动部署!

至此完成部署。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值