2.4 KiB
2.4 KiB
CentOS 7 + Docker 部署说明
1. 准备代码
在服务器上任选一种方式拿到项目文件:
方式 A:Git
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_KEY、MYSQL_* 等。不要将 .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 反向代理,配置 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。