You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6.5 KiB
6.5 KiB
应用部署文档
1. 环境要求
服务器要求
- 操作系统:Linux(推荐 Ubuntu 18.04+ 或 CentOS 7+)
- 内存:至少 2GB RAM
- 存储空间:至少 10GB 可用空间
- 网络:可访问 Gitea 仓库(http://8.137.125.67:4000)和互联网
软件依赖
- Docker:用于容器化部署
- Git:用于代码拉取
2. 部署前准备
2.1 安装 Docker
Ubuntu/Debian
# 更新系统包
apt-get update
# 安装 Docker
curl -fsSL https://get.docker.com | sh
# 启动 Docker 服务
systemctl start docker
# 设置 Docker 开机自启
systemctl enable docker
CentOS/RHEL
# 更新系统包
yum update
# 安装 Docker
yum install -y docker
# 启动 Docker 服务
systemctl start docker
# 设置 Docker 开机自启
systemctl enable docker
2.2 配置防火墙和安全组
2.2.1 系统防火墙设置
确保服务器开放以下端口:
- 3000:应用访问端口
- 4000:Gitea 仓库访问端口(仅在需要访问仓库时)
Ubuntu/Debian (ufw)
# 允许 3000 端口
ufw allow 3000/tcp
# 允许 4000 端口(如果需要)
ufw allow 4000/tcp
# 启用防火墙
ufw enable
# 查看防火墙规则
ufw status verbose
CentOS/RHEL (firewalld)
# 允许 3000 端口
firewall-cmd --zone=public --add-port=3000/tcp --permanent
# 允许 4000 端口(如果需要)
firewall-cmd --zone=public --add-port=4000/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload
# 查看防火墙规则
firewall-cmd --list-ports --zone=public
2.2.2 云服务商安全组设置
如果您使用的是云服务器(如阿里云、腾讯云、华为云等),还需要在云服务商控制台配置安全组规则:
- 登录云服务器控制台
- 找到对应服务器的安全组配置
- 添加入站规则:
- 端口范围:3000/3000
- 协议:TCP
- 授权对象:0.0.0.0/0(允许所有IP访问,或根据需要设置特定IP)
- 描述:应用访问端口
2.3 配置 Git 凭证(可选)
如果 Gitea 仓库需要认证,可以配置 Git 凭证缓存:
# 设置凭证缓存时间(1小时)
git config --global credential.helper cache
# 设置凭证永久保存
git config --global credential.helper store
# 首次拉取时会要求输入用户名和密码,之后会自动保存
3. 部署步骤
3.1 下载部署脚本
将 deploy.sh 脚本上传到服务器的任意目录,例如 /root 目录。
3.2 设置执行权限
chmod +x deploy.sh
3.3 运行部署脚本
./deploy.sh
3.4 部署过程说明
脚本将执行以下步骤:
- 检查应用目录:如果不存在则克隆仓库,存在则拉取最新代码
- 切换分支:确保使用正确的
Ly分支 - 拉取代码:从 Gitea 仓库拉取最新代码
- 停止旧容器:停止并删除旧的 Docker 容器
- 检查端口:确保 3000 端口未被占用
- 构建镜像:重新构建 Docker 镜像
- 启动容器:启动新的 Docker 容器
- 清理镜像:清理无用的 Docker 镜像
4. 验证部署
4.1 检查容器状态
docker ps | grep reject-app
正常输出示例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abcdef123456 reject-app "node Reject.js" 1 minute ago Up 1 minute 0.0.0.0:3000->3000/tcp reject-app
4.2 检查端口映射
docker port reject-app
正常输出示例:
3000/tcp -> 0.0.0.0:3000
4.3 访问应用
在浏览器中访问:http://8.137.125.67:3000
5. 常见问题解决
5.1 拒绝连接错误
错误现象:访问 http://8.137.125.67:3000 时显示"拒绝连接"
可能原因及解决方法:
-
防火墙未开放端口
- 检查防火墙规则是否允许 3000 端口
- 按照 2.2 节重新配置防火墙
-
容器未正常启动
- 检查容器状态:
docker ps -a | grep reject-app - 查看容器日志:
docker logs reject-app
- 检查容器状态:
-
端口被占用
- 检查 3000 端口占用情况:
lsof -i :3000或netstat -tulpn | grep :3000 - 停止占用端口的进程或容器
- 检查 3000 端口占用情况:
5.2 数据库连接错误
错误现象:应用启动后显示数据库连接失败
可能原因及解决方法:
-
数据库配置错误
- 检查
Reject.js中的数据库连接配置 - 确保数据库地址、用户名、密码正确
- 检查
-
数据库服务器未运行
- 检查数据库服务器状态
- 确保数据库服务器允许远程连接
5.3 代码拉取失败
错误现象:脚本执行时显示"代码拉取失败"
可能原因及解决方法:
-
Gitea 仓库不可访问
- 检查 Gitea 服务器状态:
curl -I http://8.137.125.67:4000 - 确保服务器可以访问 Gitea 仓库
- 检查 Gitea 服务器状态:
-
分支名称错误
- 检查
deploy.sh中的BRANCH变量是否正确 - 确保仓库中存在指定的分支
- 检查
6. 应用维护
6.1 查看应用日志
docker logs reject-app
# 实时查看日志
docker logs -f reject-app
6.2 重启应用
docker restart reject-app
6.3 更新应用
再次运行部署脚本即可更新应用:
./deploy.sh
6.4 停止应用
docker stop reject-app
6.5 删除应用
# 停止并删除容器
docker stop reject-app
docker rm reject-app
# 删除镜像
docker rmi reject-app
# 删除应用目录
rm -rf /app
7. 脚本说明
7.1 配置参数
脚本中的主要配置参数:
REPO_URL:Gitea 仓库地址APP_DIR:应用部署目录BRANCH:使用的代码分支
7.2 脚本功能
- 自动代码拉取:从 Gitea 仓库拉取最新代码
- 容器管理:自动停止旧容器并启动新容器
- 端口管理:自动检查并清理占用 3000 端口的进程
- 错误检查:提供详细的错误信息和处理建议
- 日志记录:记录部署过程中的关键步骤
8. 注意事项
- 第一次部署:脚本会自动克隆仓库并启动应用
- 后续部署:脚本会自动拉取最新代码并重启应用
- 分支切换:如需切换分支,请修改
deploy.sh中的BRANCH变量 - 数据持久化:应用数据通过 Docker 卷映射到
/app目录,确保该目录安全 - 定期备份:建议定期备份
/app目录和数据库
9. 联系方式
如有部署问题,请联系:
- 技术支持:[技术支持邮箱]
- 管理员:[管理员联系方式]