Docker部署SpringBoot+Vue前后分离项目

2 篇文章 0 订阅
2 篇文章 0 订阅

1.部署war包

  1. 将项目打war包
  2. docker下载并启动tomcat镜像

注意容器卷共享文件

  1. 将war包导入tomcat ROOT目录下 或者 直接将项目名改为ROOT这样就会直接访问到项目,路径不需要项目名称

参考:Docker学习(入门)_Seanliuo-CSDN博客

2.部署jar包

需要考虑问题:数据库 redis mq等服务访问。

数据库,redis 访问采用的是外部访问,既:服务器地址+服务的端口号

docker部署运行所需服务:

​ docker 需要有正在运行的mysqlredis等项目所需服务的镜像,且端口放行,可以供外部访问使用。

Redis

#拉取redis的镜像

docker pull redis

#查看本地redis镜像

docker images

#运行redis

docker run --name myredis -p 6379:6379 -d redis redis-server --appendonly yes

参数说明:

docker run表示运行的意思

–name myredis 表示起个名字叫myredis

-p 6379:6379表示把服务器的6379映射到docker的6379端口,这样就可以通过服务器的端口访问docker的端口

-d 表示以后台服务形式运行redis

redis redis-server --appendonly yes表示开启持久化缓存模式,可以存到硬盘

Mysql

#拉取Mysql镜像

docker pull mysql:5.7 # :后可以指定拉取版本号

#运行mysql镜像

docker run -d -p 3307:3307 -v /usr/local/mysql5.7/conf:/etc/mysql/conf.d -v /usr/local/mysql5.7/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root
–name mysql5.7 mysql:5.7

参数说明:

docker run
-d # 启动并后台运行
-p 3307:3307 # 端口
-v /usr/local/mysql5.7/conf:/etc/mysql/conf.d # 数据卷共享
-v /usr/local/mysql5.7/data:/var/lib/mysql # 共享表结构数据
-e MYSQL_ROOT_PASSWORD=root # 设置root账号的密码为root
–name mysql5.7 # 起别名
mysql:5.7 # 使用的镜像

其他说明:

/usr/local/mysql5.7 # 服务器mysql地址
/usr/local/mysql5.7/conf # 服务器mysql 的配置文件
/usr/local/mysql5.7/data # 服务器mysql 的数据文件

准备jar包
  1. 首先需要一个本地能正常运行的项目
  2. 将项目使用的本地服务更改为服务器中的服务

​ 如:mysql的使用案例

mysql --> 47.102.107.124:3306/casual_buy

redis的使用案例

redis -->

redis:
 host: 47.102.107.124
 port: 6379
  1. 保证项目使用外部服务且能正常运行
  2. 暂停项目 - - > 清除项目 - - > 打包项目 jar
  3. 将打包好的jar放入服务器的某一路径 如:/usr/local/SpringBoot 文件夹中
  4. 在jar所在同级目录中创建文件Dockerfile 文件内容为–>
    FROM java:8
    EXPOSE 9090
    
    VOLUME /tmp
    
    COPY vueadmin.jar app.jar
    
    RUN bash -c 'touch /app.jar'
    ENTRYPOINT ["java","-jar","/app.jar"]
    

    注意文件参数

    FROM java:8 表示基于jdk8环境
    EXPOSE 9090  表示对外暴露的端口是8080 和jar项目的端口对应(不对应不知道啥后果,没试)
    
    
    VOLUME /tmp 表示挂载到/tmp目录
    
    
    ADD eblog-0.0.1-SNAPSHOT.jar /app.jar 表示把jar包复制到镜像服务里面的根目录,并改名称app.jar
    RUN bash -c 'touch /app.jar' 表示执行创建app.jar
    ENTRYPOINT ["java","-jar","/app.jar"] 表示执行启动命令java -jar
    
    **重点**
    eblog-0.0.1-SNAPSHOT.jar  需要更改为自己的项目jar名字
    
  5. 最后生成镜像 - - > 构建镜像,注意后面有个点。

    docker build -t eblog . # eblog 是生成镜像的名字 可以更改 如: docker build -t casual-buy .

  6. 查看镜像

    docker images

  7. 启动镜像

    docker run -d -p 9090:9090 --name casual-buy casual-buy #服务器记得放开端口

    docker run -p 8080:8080 -p 9326:9326 --name eblog --link es_643:ees --link myrabbit:erabbit --link mymysql:emysql --link myredis:eredis -d eblog

  8. 测试

    访问 服务器地址+端口号。。。项目

    参考地址:就几条命令,一键学会Docker部署SpringBoot项目 - 掘金 (juejin.cn)

3.部署vue打包项目

部署vue项目之前需要部署nginx

部署nginx
  1. docker pull nginx

  2. 查看镜像

    docker images

  3. 创建nginx目录,用来存放打包后的vue项目nginx配置

    如 : /usr/local/nginx

  4. 进入上一步创建的目录中

    cd /usr/local/nginx

  5. 创建nginx.conf文件

    文件内容为:- - > linux读写文件不会,自觉百度

    #user  root;
    worker_processes  1;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
        keepalive_timeout  65;
    
        server {
            listen       80;
            server_name  localhost;
    
            location / {
                root   /usr/share/nginx/html;
    	    try_files $uri $uri/ /index.html last;
                index  index.html index.htm;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }
    
  6. nginx部署设置完成

  7. 注意点:

    1. vue解压后的项目可以放在与配置文件同级目录,并命名为项目名称,避免记混淆
vue打包部署
  1. 将vue项目访问的后台路径更改为服务器中的地址

  2. 测试是否正常运行

  3. 打包vue项目

    1. npm run bulid

      打包时项目中有console.log() 可能会打包异常

      第一种办法:请参考2020-vue疑难杂症-vue 中项目打包由于console.log导致打包不 - 简书 (jianshu.com)

      第二种方法:让console.log()消失!!(注释即可)

  4. 生成 dist 文件

    dist文件可以更改为项目的名称 --> 方便记录

  5. 压缩上传服务器

  6. 进如压缩包所在的目录下

    cd /usr/local/vue

  7. 进行解压

    unzip casual-buy-app.zip -d /usr/local/nginx/casual-buy-app

  8. 生成启动镜像

    docker run -d -p 9091:80 -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/casual-buy-app:/usr/share/nginx/html --name casual-buy-app nginx

    参数解释:

    docker run -d 
    -p 9091:80 -->前面的是要启动的端口号  : 后面的需要对应nginx配置文件的端口(无特殊要求建议不更改,也不需要更改)
    -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -->nginx配置文件路径 : 后面不需要更改
    -v /usr/local/nginx/casual-buy-app:/usr/share/nginx/html -->vue项目解压后的目录 :不需要更改
    --name casual-buy-app --> 启动容器的别名 
    nginx 启动的镜像
    
  9. 查看镜像

    docker ps

  10. 测试访问

    ojbk

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值