服务器部署技能
通过 SSH 连接远程服务器,上传项目文件,使用 Docker Compose 构建并启动服务,最后进行健康检查验证的完整部署工作流。
功能说明
本技能用于将本地项目快速部署到远程服务器,覆盖从环境检查到服务验证的全流程。
核心能力
- SSH 连接与服务器环境检查
- SFTP 文件上传(自动排除依赖和数据目录)
- Docker 国内镜像源配置(加速国内服务器部署)
- Docker Compose 构建与启动
- 服务健康检查与功能验证
适用场景
- 本地开发完成后需要上线部署
- 需要将项目部署到云服务器
- 项目使用 Docker / Docker Compose 运行
- 需要定期同步代码到远程服务器
必要信息
部署前请准备以下信息:
| 信息 | 必填 | 说明 | 示例 |
|------|------|------|------|
| 服务器 IP | 是 | 远程服务器地址 | 118.31.226.80 |
| SSH 端口 | 否 | SSH 端口,默认 22 | 22 |
| 用户名 | 是 | SSH 登录用户名 | root |
| 密码/密钥 | 是 | 认证方式 | 密码或私钥路径 |
| 部署路径 | 是 | 服务器上的项目目录 | /www/wwwroot/my-project |
部署流程
第一步:连接验证
连接服务器并检查运行环境:
# 检查 Docker
docker --version
# 检查 Docker Compose
docker compose version
# 检查磁盘空间
df -h
第二步:Docker 镜像源优化(国内服务器)
首次部署时配置国内镜像源,加速镜像拉取:
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://hub.rat.dev"
]
}
EOF
systemctl daemon-reload
systemctl restart docker
第三步:文件上传
上传项目文件到服务器,自动排除以下内容:
- 依赖目录:
.venv/、node_modules/、__pycache__/ - 版本控制:
.git/ - 环境配置:
.env、.env.local - 数据目录:
data/、redis_data/、logs/ - 编译产物:
dist/、build/、*.exe
第四步:Docker 部署
使用 Docker Compose 构建并启动服务:
cd /path/to/project
docker compose build
docker compose up -d
第五步:健康检查
验证服务是否正常启动:
# 检查容器状态
docker compose ps
# 查看启动日志
docker compose logs --tail=50
# 调用健康检查接口
curl -s http://127.0.0.1:PORT/healthz
常用运维命令
# 查看实时日志
docker compose logs -f
# 重启服务
docker compose restart
# 停止服务
docker compose down
# 查看状态
docker compose ps
# 更新部署
docker compose build && docker compose up -d
# 进入容器
docker compose exec <service-name> bash
注意事项
- 安全第一:不要在日志或公开场合泄露服务器密码、密钥
- 数据备份:部署前提醒用户备份重要数据和数据库
- 端口检查:部署前确认端口未被占用
- 环境变量:不要将
.env文件上传到服务器,应在服务器独立配置 - 权限管理:注意文件权限和目录所有权设置
- 回滚方案:保留旧版本镜像,便于快速回滚
- Windows 服务器:Windows 服务器使用 PowerShell 远程管理而非 SSH
许可证
MIT License
Scan to join WeChat group