Files
Resume/DEPLOY.md
2026-04-17 13:23:50 +08:00

112 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CentOS 7 + Docker 部署说明
## 1. 准备代码
在服务器上任选一种方式拿到项目文件:
**方式 AGit**
```bash
cd /opt
sudo git clone <你的仓库地址> resume-app
cd resume-app
```
**方式 B本机打包上传**
在本机项目根目录打包(不要打进 `node_modules``.env`
```bash
tar czvf resume-app.tar.gz --exclude=node_modules --exclude=.git .
```
上传到服务器后:
```bash
mkdir -p /opt/resume-app && cd /opt/resume-app
tar xzvf ~/resume-app.tar.gz
```
## 2. 环境变量
```bash
cd /opt/resume-app
cp .env.example .env
vi .env
```
按说明填写 `DEEPSEEK_API_KEY``MYSQL_*` 等。**不要将 `.env` 提交到 Git。**
## 3. 构建并启动Docker Compose
CentOS 7 上若安装的是旧版 `docker-compose`,命令可能是 `docker-compose`(带连字符):
```bash
cd /opt/resume-app
docker compose build
docker compose up -d
```
若提示 `docker compose` 不存在,可试:
```bash
docker-compose build
docker-compose up -d
```
查看日志:
```bash
docker compose logs -f
# 或
docker-compose logs -f
```
浏览器访问:`http://服务器IP:3000`
## 4. 防火墙CentOS 7
```bash
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --reload
```
云厂商安全组里也要放行 **3000**(或你改的端口)。
## 5. 修改对外端口(可选)
编辑 `docker-compose.yml` 中端口映射,例如改为宿主机 8080
```yaml
ports:
- "8080:3000"
```
容器内仍监听 `PORT=3000`,映射左边为宿主机端口。
## 6. 更新版本
```bash
cd /opt/resume-app
git pull # 若使用 Git
docker compose build --no-cache
docker compose up -d
```
## 7. 生产环境建议
- 前面加 **Nginx** 反向代理,配置 HTTPSLets Encrypt 等)。
- MySQL 若在同一内网,优先用内网地址,并限制来源 IP。
- 定期备份数据库;`.env` 权限:`chmod 600 .env`
## 8. 常见问题
**镜像构建失败canvas 等原生模块)**
`Dockerfile` 中取消注释安装 `python3 make g++` 的那一行后重新 `build`
**容器内连不上 MySQL**
确认 `MYSQL_HOST` 对容器可达:若 MySQL 在宿主机上,不要用 `127.0.0.1`,应使用宿主机在 Docker 网桥上的地址,或将 MySQL 也容器化并用同一 network最简单是将 MySQL 放在另一台机器或云 RDS填公网/内网 IP。
**CentOS 7 已 EOL**
长期建议升级到 Rocky Linux 8/9 或 AlmaLinux 8/9再装 Docker。