Centos服务器部署前后端项目

目录

  • 准备工作
    • [1. 准备传输软件](#1. 准备传输软件)
    • [2. 连接服务器](#2. 连接服务器)
  • 部署Mysql
  • 部署后端
  • [1. 在项目根目录中创建Dockerfile文件写入](#1. 在项目根目录中创建Dockerfile文件写入)
    • [2. 启动](#2. 启动)
  • 部署前端
    • [1. 在项目根目录中创建Dockerfile文件写入](#1. 在项目根目录中创建Dockerfile文件写入)
    • [2. 启动](#2. 启动)

准备工作

1. 准备传输软件

下载WinSCP用于传输
WinSCP下载地址

2. 连接服务器

部署Mysql

1.下载Mysql(Linux版本)

Mysql8下载地址

下载完成后通过WinSCP传输至服务器

2. 解压

bash 复制代码
tar -xvf mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz  -C /usr/local
  • -x选项表示解压缩
  • -v选项表示在解压缩时显示详细信息
  • -f选项指定要解压缩的文件名
  • -C选项指定解压缩后的目标目录。

3. 修改配置

bash 复制代码
 cd /usr/local/
 #修改文件名
 mv mysql-8.3.0-linux-glibc2.28-x86_64 mysql
...

4. 启动服务

bash 复制代码
[root@iZ2zefyktv92zomf8sbocfZ mysql] cd /usr/local/mysql/support-files
# 启动
[root@iZ2zefyktv92zomf8sbocfZ support-files] ./mysql.server start

另一种方法Docker

bash 复制代码
#获取 MySQL Docker 镜像:
docker pull mysql:8.0
bash 复制代码
# 创建 MySQL 容器
docker run --name mysql-container -dp 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
bash 复制代码
# 进入容器内部
docker exec -it mysql-container mysql -u root -p

docker run 用于创建指定镜像和启动新的容器实例,

而 docker exec -it 用于在已经运行的容器内执行命令。

导入本地sql文件(或者本地连接再导入)
由于容器是独立的, 在容器内部找不到本地路径所以采用以下方法:

bash 复制代码
# 1将sql文件复制到 MySQL 容器内部:
docker cp /root/reso/car.sql   mysql-container:/car.sql
#将 car.sql 文件复制到名为 mysql-docker 的 MySQL 容器内部的根目录。

# 2. 进入 MySQL 容器
docker exec -it mysql-container bash

#3.在容器内部执行以下命令:
mysql -u root -p vehicle_system < /car.sql

本地连接成功

部署后端

1. 在项目根目录中创建Dockerfile文件写入

bash 复制代码
#Dockerfile
# 运行时环境的基础镜像
FROM openjdk:17-jdk
ENTRYPOINT ["java", "-jar", "/app.jar"]
#暴露
EXPOSE 8081
ARG JAR_FILE
COPY vehicle.jar app.jar
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone

2. 启动

bash 复制代码
# 创建镜像
docker build -t springboot .
docker run -p 8081:8081 --name spring-container -d springboot:1.0
docker logs spring-container

请求成功!


注意:

  1. 报错显示java找不到

    设置正确的镜像源 FROM openjdk:17-jdk
  2. 报错显示jar找不到
    设置正确的路径

部署前端

1. 在项目根目录中创建Dockerfile文件写入

复制代码
Dockerfile
FROM nginx:alpine

# 将当前目录下的所有文件复制到容器中的 /usr/share/nginx/html 目录
COPY . /usr/share/nginx/html

# 暴露容器的 80 端口
EXPOSE 80

# 容器启动时运行的命令
CMD ["cd  /usr/sbin/", "./nginx"]

2. 启动

bash 复制代码
# 创建镜像
docker build -t react-vehicle .
#创建一个容器并启动,-d后台运行-p(主机端口:容器端口),react-vehicle镜像名
docker run -dp 80:80 react-vehicle
相关推荐
Apipi*5 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP6 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
运维行者_6 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
hz567898 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC8 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
优橙教育8 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
BLUcoding9 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
AIgorithmGEEK9 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil2089 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)9 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障