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

2.4 KiB
Raw Blame History

CentOS 7 + Docker 部署说明

1. 准备代码

在服务器上任选一种方式拿到项目文件:

方式 AGit

cd /opt
sudo git clone <你的仓库地址> resume-app
cd resume-app

方式 B本机打包上传

在本机项目根目录打包(不要打进 node_modules.env

tar czvf resume-app.tar.gz --exclude=node_modules --exclude=.git .

上传到服务器后:

mkdir -p /opt/resume-app && cd /opt/resume-app
tar xzvf ~/resume-app.tar.gz

2. 环境变量

cd /opt/resume-app
cp .env.example .env
vi .env

按说明填写 DEEPSEEK_API_KEYMYSQL_* 等。不要将 .env 提交到 Git。

3. 构建并启动Docker Compose

CentOS 7 上若安装的是旧版 docker-compose,命令可能是 docker-compose(带连字符):

cd /opt/resume-app
docker compose build
docker compose up -d

若提示 docker compose 不存在,可试:

docker-compose build
docker-compose up -d

查看日志:

docker compose logs -f
# 或
docker-compose logs -f

浏览器访问:http://服务器IP:3000

4. 防火墙CentOS 7

sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --reload

云厂商安全组里也要放行 3000(或你改的端口)。

5. 修改对外端口(可选)

编辑 docker-compose.yml 中端口映射,例如改为宿主机 8080

ports:
  - "8080:3000"

容器内仍监听 PORT=3000,映射左边为宿主机端口。

6. 更新版本

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。