JavaWeb项目搭建流程

前言:该java web项目为前后端分离,因此需要分别搭建前端和后端,同时后端依赖mysql数据以及redis

非容器方式部署

后端部署

1. java安装(版本号:8.0_221)

1)切换到/usr/local/目录下,执行mkdir java新建java文件夹,复制jdk-8u221-linux-x64.tar.gz到/usr/local/java/目录下

2)执行解压命令 tar -zxvf jdk-8u221-linux-x64.tar.gz

3)执行vi /etc/profile   配置JDK环境变量

在尾部追加如下:

export JAVA_HOME=/usr/local/java/jdk1.8.0_221

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

4)执行 source /etc/profile 使环境变量生效

5)执行java -version检查jdk安装是否成功

如果出现如下版本信息,说明安装成功

java version "1.8.0_221"

Java(TM) SE Runtime Environment (build 1.8.0_221-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

2. mysql(版本号:5.7)安装

1mysql安装

Wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

rpm -ivh mysql-community-release-el7-5.noarch.rpm

yum update

yum install mysql-server

2)权限设置:

chown -R mysql:mysql /var/lib/mysql

3)初始化 MySQL

mysqld –initialize

4)启动 MySQL

systemctl start mysqld

5)查看 MySQL 运行状态

systemctl status mysqld

6)还原数据库

mysql -h hostname -P port -u root -p password < summer5.sql

备注:该方法要求mysql中存在对应的数据库,因此首先需要create database summer5

(7)数据库创建用户及其分配权限操作

1)创建用户:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

Username:创建的用户名

Host:指定从那个主机上登录,若是本地用户可用localhost,若想要该用户可以从任意远程主机登录,可以使用通配符%

Password:用户的登录密码,可以为空

2)授权:GRANT privileges ON databasename.tablename TO 'username'@'host'

privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL

databasename:数据库名

tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*

3. redis(版本号:5.0.7)的安装

详见 linux安装redis_zhangju91的专栏-CSDN博客_linux安装redis

4. 运行jar包

复制web项目的jar运行文件到服务器的/javaweb/下,执行启动命令:

java -Xms1024m -Xmx1024m -jar /javaweb/summer-admin.jar &

其中/javaweb/是配置文件所在的路径,根据实际存放在Centos位置做替换即可

前端部署

1. 本地构建前端文件

(1)本地下载配置nodejs安装包并安装

(2)Clone/pull前端代码到本地

(3)进入前端项目文件中构建项目,构建成功后当前目录下生产build文件,构建语句为:

        npm i

        npm run build

2. 服务器端配置node环境

在服务器路径/usr/local/src/下,执行命令:

wget https://nodejs.org/dist/v14.17.6/node-v14.17.6-linux-x64.tar.xz    // 下载

#tar xf node-v14.17.6-linux-x64.tar.xz         // 解压

# cd node-v14.17.6-linux-x64/           // 进入解压目录

# ./bin/node -v                           // 执行node命令 查看版本

# ln -s /usr/local/src/node-v14.17.6-linux-x64/bin/node /usr/bin/node  //建立node软连接

# node -v     //建立成功,查看node版本

# ln -s /usr/local/src/node-v14.17.6-linux-x64/bin/npm /usr/bin/npm    //建立npm软连接

# npm -v    //建立成功,查看npm版本

3. 文件上传

从本地的前端项目中上传build文件,server文件,以及依赖文件package.json到服务器端,上传文件的服务器端地址为/home/zhangzhang

4. PM2安装

在服务器路径/usr/local/src/下,执行命令:

# npm i                                      //安装前端及node所需依赖

# npm i pm2 -g                               // 全局安装PM2工具

# sudo ln -s /usr/local/src/node-v14.17.6-linux-x64/bin/pm2 /usr/bin/pm2   //创建软连接

5. 利用PM2启动node服务

在服务器路径/home/jianyu下,执行命令:

# sudo pm2 start server/app.js                   //启动node 服

6. 配置开机自启动                                                                                                                              

# sudo pm2 save                              //保存脚本

# sudo pm2 startup systemd                     //创建开机自启脚本

# sudo systemctl enable pm2-root.service          //设置开机自动

容器方式部署xiangmu

Docker环境准备

  1. 配置 Docker Repository

在主机上首次安装 Docker Engine之前,需要设置 Docker Repository,之后可以从 Repository 安装和更新 Docker

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# Step 2: 添加软件源信息,国内 Repository 更加稳定
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# Step 3: 更新
sudo yum makecache fast
  1. 安装最新版本的 Docker Engine Container
sudo yum install docker-ce docker-ce-cli containerd.io 

部署mysql容器

  1. 部署命令:

docker run -p 3306:3306 --name mysql -v dir:/var/lib/mysql -v /mysql/: /docker-entrypoint-initdb.d/ -e MYSQL_ROOT_PASSWORD=password -d mysql:8 (mysql:8 表示安装的mysql版本号为8)

其中,初始化数据库脚本放在/mysql/目录下存放,通过-v /mysql/: /docker-entrypoint-initdb.d/ 映射到docker-entrypoint-initdb.d用于初始化数据库

部署redis容器

部署命令:

docker run -p 6379:6379 --name redis -v /home/:/etc/redis/ -v /data/redis/data:/data -d redis: 5.0.7 redis-server –requirepass test

参数释义:

-p 6379:6379:把容器内的6379端口映射到宿主机6379端口

-v / home/:/etc/redis/:把宿主机中/home路径下配置好的redis.conf映射到容器的/etc/redis/路径下

-v /data/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份

–requirepass test设置redis的密码

后端项目部署

  1. 服务器端新建工作目录mydocker:mkdir mydocker
  2. 上传后端jar文件summer-admin.jar(需要手动修改配置,修改方式同上)到目录/mydocker/下
  3. mydocker/目录下新建Dockerfile文件文件内容如下:

#表示基于java:8镜像构建

FROM java:8

#执行命令

CMD ["java","-jar","/usr/src/summer-backend.jar","&"]

4. 构建镜像

docker build -t appdocker .

5. 构建成功后,启动容器

docker run -it -p 8081:8081 -d -v /mydocker/:/usr/src/ --name javapp appdocker

 备注:-v /mydocker/:/usr/src/ 将虚机中的mydocker文件夹映射到容器的/usr/src中

前端项目部署

  1. 服务器端新建工作目录webfront:mkdir webfront
  2. 将前端所有项目文件上传到服务器端/webfront/目录下
  3. 进入/webfront/路径下新建Dockerfile文件,文件内容如下:

   

FROM node:latest

RUN npm install -g cnpm --registry=https://registry.npm.taobao.org

#安装pm2

RUN cnpm install pm2 -g

#拷贝当前路径下的所有文件到容器对应目录下

COPY . ./usr/local/webfront1/

#设置容器的工作目录

WORKDIR /usr/local/webfront1/

#安装前端依赖

RUN npm install

#构建前端项目

RUN npm run build

#pm2 运行前端项目

CMD pm2 start server/app.js && while true;do sleep 1;done

4. /webfront/目录下运行命令:docker build -t webfront:1 .  构建镜像

5. 镜像成功创建成功后,运行前端容器:docker run -it -p801:801 –name front1 webfront:1

检查容器是否正常启动

docker ps :用于查看成功运行的容器

JavaWeb项目搭建流程_第1张图片

docker logs 容器id: 查看容器的启动日志

你可能感兴趣的:(java,maven,jar)