栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

注意容器卷共享文件

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

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

2.部署jar包

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

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

docker部署运行所需服务:

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

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包
    首先需要一个本地能正常运行的项目 将项目使用的本地服务更改为服务器中的服务

​ 如:mysql的使用案例

mysql --> 47.102.107.124:3306/casual_buy

redis的使用案例

redis -->

redis:
 host: 47.102.107.124
 port: 6379
    保证项目使用外部服务且能正常运行 暂停项目 - - > 清除项目 - - > 打包项目 jar 将打包好的jar放入服务器的某一路径 如:/usr/local/SpringBoot 文件夹中 在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名字
    
    最后生成镜像 - - > 构建镜像,注意后面有个点。

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

    查看镜像

    docker images

    启动镜像

    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 测试

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

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

3.部署vue打包项目

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

部署nginx

    docker pull nginx

    查看镜像

    docker images

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

    如 : /usr/local/nginx

    进入上一步创建的目录中

    cd /usr/local/nginx

    创建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;
            }
        }
    }
    

    nginx部署设置完成

    注意点:

      vue解压后的项目可以放在与配置文件同级目录,并命名为项目名称,避免记混淆
vue打包部署

    将vue项目访问的后台路径更改为服务器中的地址

    测试是否正常运行

    打包vue项目

      npm run bulid

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

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

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

    生成 dist 文件

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

    压缩上传服务器

    进如压缩包所在的目录下

    cd /usr/local/vue

    进行解压

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

    生成启动镜像

    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 启动的镜像
    

    查看镜像

    docker ps

    测试访问

    ojbk

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755776.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号