# Module Deploy

> 部署包含 Dockerfile 和 env 目录的模块到指定环境。当用户需要部署一个模块到 test、dev 或其他环境时调用。 Use when this capability is needed.

- Skill: `tomevault-io/module-deploy` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/module-deploy`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/module-deploy/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/module-deploy

---


# 模块部署技能

## 功能

本技能提供了一种通用的方法，用于部署包含以下条件的模块到指定环境：
- 包含 `Dockerfile` 文件
- 包含 `env` 目录，且目录下有对应环境的配置文件（如 `test.env`）
- 包含 `deploy.sh` 部署脚本

## 适用场景

当用户需要：
- 部署一个模块到 test 环境
- 部署一个模块到 dev 环境
- 部署一个模块到其他自定义环境

## 使用方法

### 前提条件

1. 确保模块目录下存在以下文件和目录：
   - `Dockerfile`：用于构建 Docker 镜像
   - `deploy.sh`：部署脚本
   - `env/` 目录：包含环境配置文件
   - `env/<环境名>.env`：对应环境的配置文件，如 `env/test.env`

2. 确保 `env/<环境名>.env` 配置文件中包含以下必要的环境变量：
   - `REMOTE_USER`：远程服务器用户名
   - `REMOTE_PASSWD`：远程服务器密码
   - `REMOTE_HOST`：远程服务器主机地址
   - `REMOTE_PORT`：远程服务器 SSH 端口
   - `REMOTE_PATH`：远程服务器镜像存储路径
   - `REMOTE_COMPOSE_PATH`：远程服务器 docker-compose 文件路径
   - `IMAGE_NAME`：Docker 镜像名称
   - `SERVICE_NAME`：服务名称

### 部署命令

在模块目录下执行以下命令：

```bash
bash deploy.sh <环境名>
```

例如，部署到 test 环境：

```bash
bash deploy.sh test
```

### 部署流程

1. 加载指定环境的配置文件
2. 编译模块（如果需要）
3. 本地构建 Docker 镜像
4. 将镜像保存为 tar 文件
5. 上传镜像到远程服务器
6. 在远程服务器上加载镜像
7. 备份旧镜像（如果存在）
8. 为新镜像打标签
9. 清理旧备份镜像
10. 启动服务
11. 清理临时文件

## 示例

### 示例 1：部署 podengine 模块到 test 环境

```bash
cd app/podengine
bash deploy.sh test
```

### 示例 2：部署其他模块到 dev 环境

```bash
cd app/other-module
bash deploy.sh dev
```

## 注意事项

1. 确保本地已经安装 Docker 和 Go（如果模块需要编译）
2. 确保远程服务器已经安装 Docker 和 docker-compose
3. 确保本地和远程服务器之间网络通畅
4. 确保远程服务器有足够的磁盘空间存储 Docker 镜像
5. 确保配置文件中的环境变量正确无误

## 故障排查

### 常见错误

1. **环境文件不存在**：确保 `env/<环境名>.env` 文件存在
2. **缺少必要环境变量**：检查配置文件中是否包含所有必要的环境变量
3. **编译失败**：确保本地已经安装 Go，且代码可以正常编译
4. **镜像构建失败**：检查 Dockerfile 是否正确
5. **上传失败**：检查网络连接和远程服务器的 SSH 配置
6. **启动失败**：检查远程服务器的 docker-compose 配置和服务依赖

### 解决方法

1. 检查错误信息，确定具体问题
2. 验证配置文件中的环境变量
3. 验证本地和远程服务器的环境
4. 验证网络连接
5. 查看远程服务器的日志

如果问题仍然无法解决，请联系系统管理员或 DevOps 团队寻求帮助。

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/maomao94) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

