251 lines
4.9 KiB
Markdown
251 lines
4.9 KiB
Markdown
# 信奥工具箱 - 服务器部署指南
|
||
|
||
## 前置要求
|
||
|
||
1. **服务器环境**
|
||
- Linux 系统(推荐 Ubuntu 20.04+ 或 CentOS 7+)
|
||
- Docker 已安装(版本 20.10+)
|
||
- Docker Compose 已安装(可选,推荐)
|
||
|
||
2. **网络访问**
|
||
- 能够访问阿里云镜像仓库:`registry.cn-hangzhou.aliyuncs.com`
|
||
- 服务器端口开放(默认 3000 端口)
|
||
|
||
## 快速部署
|
||
|
||
### 方法一:使用 Docker Compose(推荐)
|
||
|
||
1. **登录阿里云镜像仓库**
|
||
```bash
|
||
docker login --username=<您的用户名> registry.cn-hangzhou.aliyuncs.com
|
||
```
|
||
|
||
2. **上传部署文件到服务器**
|
||
- `docker-compose.yml`
|
||
- `deploy.sh`(可选)
|
||
|
||
3. **执行部署**
|
||
```bash
|
||
# 使用部署脚本
|
||
chmod +x deploy.sh
|
||
./deploy.sh --compose
|
||
|
||
# 或直接使用 docker-compose
|
||
docker-compose pull
|
||
docker-compose up -d
|
||
```
|
||
|
||
4. **验证部署**
|
||
```bash
|
||
# 查看容器状态
|
||
docker-compose ps
|
||
|
||
# 查看日志
|
||
docker-compose logs -f
|
||
|
||
# 访问服务
|
||
curl http://localhost:3000
|
||
```
|
||
|
||
### 方法二:使用 Docker 命令
|
||
|
||
1. **登录阿里云镜像仓库**
|
||
```bash
|
||
docker login --username=<您的用户名> registry.cn-hangzhou.aliyuncs.com
|
||
```
|
||
|
||
2. **使用部署脚本**
|
||
```bash
|
||
chmod +x deploy.sh
|
||
./deploy.sh
|
||
```
|
||
|
||
3. **或手动执行**
|
||
```bash
|
||
# 拉取镜像
|
||
docker pull registry.cn-hangzhou.aliyuncs.com/nick-x86/i-tools:latest
|
||
|
||
# 停止并删除旧容器(如果存在)
|
||
docker stop i-tools 2>/dev/null || true
|
||
docker rm i-tools 2>/dev/null || true
|
||
|
||
# 启动新容器
|
||
docker run -d \
|
||
--name i-tools \
|
||
--restart unless-stopped \
|
||
-p 3000:3000 \
|
||
-e NODE_ENV=production \
|
||
registry.cn-hangzhou.aliyuncs.com/nick-x86/i-tools:latest
|
||
```
|
||
|
||
## 配置说明
|
||
|
||
### 端口配置
|
||
|
||
默认端口为 `3000`,如需修改:
|
||
|
||
**Docker Compose 方式:**
|
||
编辑 `docker-compose.yml`,修改 `ports` 配置:
|
||
```yaml
|
||
ports:
|
||
- "8080:3000" # 主机端口:容器端口
|
||
```
|
||
|
||
**Docker 命令方式:**
|
||
```bash
|
||
./deploy.sh -p 8080
|
||
# 或
|
||
docker run -d --name i-tools -p 8080:3000 ...
|
||
```
|
||
|
||
### 环境变量
|
||
|
||
可以在 `docker-compose.yml` 或 `docker run` 命令中添加环境变量:
|
||
|
||
```yaml
|
||
environment:
|
||
- NODE_ENV=production
|
||
- PORT=3000
|
||
# 添加其他环境变量
|
||
```
|
||
|
||
## 常用操作
|
||
|
||
### 查看日志
|
||
```bash
|
||
# Docker Compose
|
||
docker-compose logs -f i-tools
|
||
|
||
# Docker 命令
|
||
docker logs -f i-tools
|
||
```
|
||
|
||
### 重启服务
|
||
```bash
|
||
# Docker Compose
|
||
docker-compose restart i-tools
|
||
|
||
# Docker 命令
|
||
docker restart i-tools
|
||
```
|
||
|
||
### 停止服务
|
||
```bash
|
||
# Docker Compose
|
||
docker-compose stop i-tools
|
||
|
||
# Docker 命令
|
||
docker stop i-tools
|
||
```
|
||
|
||
### 更新部署
|
||
```bash
|
||
# 使用部署脚本(推荐)
|
||
./deploy.sh --compose
|
||
|
||
# 或手动更新
|
||
docker-compose pull
|
||
docker-compose up -d
|
||
```
|
||
|
||
### 查看容器状态
|
||
```bash
|
||
# Docker Compose
|
||
docker-compose ps
|
||
|
||
# Docker 命令
|
||
docker ps | grep i-tools
|
||
```
|
||
|
||
## Nginx 反向代理配置(可选)
|
||
|
||
如果需要通过域名访问,可以配置 Nginx 反向代理:
|
||
|
||
```nginx
|
||
server {
|
||
listen 80;
|
||
server_name your-domain.com;
|
||
|
||
location / {
|
||
proxy_pass http://localhost:3000;
|
||
proxy_http_version 1.1;
|
||
proxy_set_header Upgrade $http_upgrade;
|
||
proxy_set_header Connection 'upgrade';
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||
proxy_set_header X-Forwarded-Proto $scheme;
|
||
proxy_cache_bypass $http_upgrade;
|
||
}
|
||
}
|
||
```
|
||
|
||
## 故障排查
|
||
|
||
### 容器无法启动
|
||
```bash
|
||
# 查看详细日志
|
||
docker logs i-tools
|
||
|
||
# 检查端口是否被占用
|
||
netstat -tulpn | grep 3000
|
||
# 或
|
||
lsof -i :3000
|
||
```
|
||
|
||
### 无法访问服务
|
||
1. 检查防火墙设置
|
||
```bash
|
||
# Ubuntu/Debian
|
||
sudo ufw allow 3000
|
||
|
||
# CentOS/RHEL
|
||
sudo firewall-cmd --add-port=3000/tcp --permanent
|
||
sudo firewall-cmd --reload
|
||
```
|
||
|
||
2. 检查容器是否运行
|
||
```bash
|
||
docker ps | grep i-tools
|
||
```
|
||
|
||
3. 检查端口映射
|
||
```bash
|
||
docker port i-tools
|
||
```
|
||
|
||
### 镜像拉取失败
|
||
1. 确认已登录镜像仓库
|
||
```bash
|
||
docker login registry.cn-hangzhou.aliyuncs.com
|
||
```
|
||
|
||
2. 检查网络连接
|
||
```bash
|
||
ping registry.cn-hangzhou.aliyuncs.com
|
||
```
|
||
|
||
## 资源限制
|
||
|
||
默认配置的资源限制:
|
||
- CPU: 0.5-1 核心
|
||
- 内存: 256MB-512MB
|
||
|
||
如需调整,编辑 `docker-compose.yml` 中的 `deploy.resources` 部分。
|
||
|
||
## 安全建议
|
||
|
||
1. **使用非 root 用户运行容器**(已在 Dockerfile 中配置)
|
||
2. **定期更新镜像**:`docker-compose pull && docker-compose up -d`
|
||
3. **配置防火墙**:只开放必要端口
|
||
4. **使用 HTTPS**:通过 Nginx 配置 SSL 证书
|
||
5. **监控日志**:定期检查容器日志
|
||
|
||
## 联系支持
|
||
|
||
如遇到问题,请检查:
|
||
1. Docker 版本是否符合要求
|
||
2. 服务器资源是否充足
|
||
3. 网络连接是否正常
|
||
4. 查看容器日志获取详细错误信息
|