# CentOS 7 + Docker 部署说明 ## 1. 准备代码 在服务器上任选一种方式拿到项目文件: **方式 A:Git** ```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** 反向代理,配置 HTTPS(Let’s 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。