SpringBoot+Vue项目部署Centos7流程

目录

Centos7安装Docker

Docker安装MySQL

Docker安装Redis

Docker安装Nginx

Docker部署Web端

Docker部署Server端

查看容器并访问

一键部署


Centos7安装Docker

①安装docker

[root@localhost ~]# yum -y install docker

②启动 Docker 后台服务

[root@localhost ~]# service docker start

Docker安装MySQL

①拉取镜像

[root@localhost ~]# docker pull mysql:5.7.31

②运行镜像

[root@localhost ~]# 

docker run -p 3306:3306 --restart=always --privileged=true --name mysql -v /home/mysql/log:/var/log/mysql -v /home/mysql/data:/var/lib/mysql -v /home/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=mysql-root-pwd -d mysql:5.7.31

③配置文件示例,配置在/home/mysql/conf中新建文件my.cnf,内容如下

[client]

        default-character-set=utf8

        [mysql]

        default-character-set=utf8

        [mysqld]

        ## 同一局域网内注意要唯一

        server-id=1024

        ## 开启二进制日志功能,可以随便取(关键)

        log-bin=mysql-bin

        secure_file_priv=/var/lib/mysql

        default_authentication_plugin=mysql_native_password  #设置密码规则

        max_connections=1000 #最大连接数设置 根据实际需要 自行调整

        default-time-zone=Asia/Shanghai       

        sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

        init_connect='SET collation_connection = utf8_unicode_ci'

        init_connect='SET NAMES utf8'

        character-set-server=utf8

        collation-server=utf8_unicode_ci

        skip-character-set-client-handshake


Docker安装Redis

①拉取镜像

[root@localhost ~]# docker pull redis

②运行镜像

[root@localhost ~]# 

docker run --restart=always -p 6379:6379 --name redis -v /home/redis/myredis.conf:/etc/redis/redis.conf -v /home/redis/data:/data -d redis:6.2.6 redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass rds-root-pwd

Docker安装Nginx

①拉取镜像:

[root@localhost ~]# docker pull nginx

②创建挂载目录

mkdir -p /home/nginx/conf

mkdir -p /home/nginx/log

mkdir -p /home/nginx/html

③生成容器

docker run --name nginx -p 9001:80 -d nginx

④将容器nginx.conf文件复制到宿主机

docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf

⑤将容器conf.d文件夹下内容复制到宿主机

docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d

⑥将容器中的html文件夹复制到宿主机

docker cp nginx:/usr/share/nginx/html /home/nginx/

⑦删除原容器:docker stop nginx;docker rm nginx

⑧重新生成容器:

docker run -p 80:80 -p 443:443 --restart=always --privileged=true --name nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -v /home/nginx/ssl:/usr/share/nginx/ssl -d nginx:latest

Docker部署Web

①打包:npm run build:prod,将dist上传至服务器/home/data/web路径下

②配置Dockerfile,路径:/home/data/web/Dockerfile,内容如下

# 基础镜像使用Nginx
FROM nginx
# 作者
MAINTAINER attr
# 添加时区环境变量,亚洲,上海
ENV TimeZone=Asia/Shanghai
# 将前端dist文件中的内容复制到nginx目录
COPY ./dist/  /usr/share/nginx/html/
# 用本地的nginx配置文件覆盖镜像的Nginx配置
COPY nginx.conf /etc/nginx/nginx.conf
# 暴露端口
EXPOSE 80

③构建镜像:docker build -t jinhai_lwms_web .

④生成容器:

docker run -it -d --restart always --name jinhai_lwms_web -p 11009:80 jinhai_lwms_web

Docker部署Server

①导出jar包,将其上传至服务器路径/home/data/server下

②配置Dockerfile,路径:/home/data/server/Dockerfile;内容如下

FROM primetoninc/jdk:1.8
MAINTAINER attr

ENV JAVA_OPTS=""
ENV SERVER_PORT 80
EXPOSE ${SERVER_PORT}

ENV UPLOAD_FILE_PATH /uploadfile/
VOLUME /uploadfile

ENV UPLOAD_THUMBNAIL /uploadthumbnail/
VOLUME /uploadthumbnail

ARG JAR_FILE
ADD dianchang-tms-server-1.0.jar app.jar

ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/urandom -Duser.timezone=GMT+08 -jar /app.jar" ]

③构建镜像:docker build -t jinhai_lwms_server .

④生成容器:

  • docker run -it -d --restart always --name jinhai_lwms_server -p 11008:8080 -v /home/data/server/logs:/logs/ -v /home/data/server/uploadfile:/uploadfile/ -v /home/data/server/uploadthumbnail:/uploadthumbnail/  -e MYSQL_SERVER=IP:3306/db_jinhai_lwms -e REDIS_HOST=IP -e REDIS_PORT=6379  -e REDIS_DB=4 jinhai_lwms_server

查看容器并访问

①查看容器:docker ps

②访问项目:http://ip地址

一键部署

①dockerrun.sh路径如下:/home/work/dockerrun.sh,内容如下:

#!/bin/bash
read -p "请输入镜像版本号,格式yyyymmdd :" tag
echo "当前镜像版本号:${tag}"
projectName='dianchang_tms_web'
cd /home/data/web
  echo "${projectName} will docker build & run"
  docker build -t ${projectName}:"$tag" .
  docker stop ${projectName} &&   docker rm ${projectName}
  docker run -it -d --restart always --name ${projectName} -p 11009:80 ${projectName}:"$tag"

projectName='dianchang_tms_server'
cd /home/data/server
  echo "${projectName} will docker build & run"
  docker build -t ${projectName}:"$tag" .
  docker stop ${projectName} &&   docker rm ${projectName}
  docker run -it -d --restart always --name ${projectName} -p 11008:80 -v /home/data/server/logs:/logs/ -v /home/nginx/ssl/uploadfile:/uploadfile/ -v /home/data/server/uploadthumbnail:/uploadthumbnail/  -e MYSQL_SERVER=IP:3306/db_dianchang_tms -e REDIS_HOST=IP -e REDIS_PORT=6379  -e REDIS_DB=4 ${projectName}:"$tag"


echo "应用部署完成,请查看日志是否有问题!!!!!!!!!!!!!!!!!!!!!"

②日常部署需将dist和jar上传至上述步骤中提及的指定位置,再执行dockerrun.sh

(sh /home/work/dockerrun.sh)即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值