开发环境专用工具,用于构建前端应用容器镜像并发布到DockerHub。支持GUI界面和命令行两种使用方式。
- 🖥️ 跨平台支持: Windows、macOS、Linux
- 🎨 GUI界面: 基于tkinter的友好图形界面
- 💻 命令行工具: 支持脚本自动化
- 🐳 Docker集成: 自动构建和推送镜像到DockerHub
- 📋 模板生成: 自动生成docker-compose部署模板
- ⚙️ 配置管理: 支持配置文件和环境变量
- 🔧 可配置化: 支持自定义服务前缀和基础镜像名称
- Python 3.7+
- Docker Desktop (已安装并运行)
- DockerHub账号和访问令牌
pip install -r requirements.txt
设置DockerHub凭据(二选一):
方法一:环境变量
export DOCKERHUB_USERNAME=your_username
export DOCKERHUB_TOKEN=your_token
方法二:GUI界面配置
python app.py start --gui
GUI模式(推荐)
# 直接运行(默认启动GUI)
python app.py
# 或明确指定GUI模式
python app.py start --gui
# 使用便捷脚本
./start.sh
命令行模式
# 发布应用
python app.py publish ai-zhaoshang 1.0.0 /path/to/dist.zip
# 查看配置
python app.py config
# 生成docker-compose模板
python app.py template ai-zhaoshang --port 3000
# 查看帮助
python app.py --help
-
配置参数
- 填写DockerHub用户名和访问令牌
- 设置维护者信息
- 配置服务前缀(默认:hzxy)
- 配置基础镜像名称(默认:hzxy-webapp-base)
- 点击"保存配置"
-
填写应用信息
- 应用名称:如
ai-zhaoshang
- 版本号:如
1.0.0
- 应用名称:如
-
选择文件
- 点击"选择文件"按钮
- 选择前端团队提供的
dist.zip
文件
-
构建发布
- 点击"🚀 构建并发布"按钮
- 查看实时构建日志
- 等待发布完成
-
生成部署模板
- 点击"📋 生成docker-compose模板"
- 保存模板文件用于AI盒子部署
# 1. 检查配置
python app.py config
# 2. 发布应用
python app.py publish ai-zhaoshang 1.0.0 ./ai-zhaoshang-dist.zip
# 3. 生成部署模板
python app.py template ai-zhaoshang --port 3000
生成的Docker镜像遵循以下命名规范:
- 格式:
{DOCKERHUB_USERNAME}/{BASE_IMAGE_NAME}-{应用名称}:{版本号}
- 示例:
myuser/hzxy-webapp-base-ai-zhaoshang:1.0.0
- 同时会创建
latest
标签 - BASE_IMAGE_NAME 可在GUI界面配置,默认为
hzxy-webapp-base
工具会自动生成适用于AI盒子的docker-compose模板:
services:
hzxy-ai-zhaoshang:
image: myuser/hzxy-webapp-base-ai-zhaoshang:latest
container_name: hzxy-ai-zhaoshang
ports:
- "3000:80"
restart: unless-stopped
networks:
- hzxy-network
networks:
hzxy-network:
driver: bridge
注意: 服务名称和网络名称中的前缀(如 hzxy-
)可在GUI界面配置,默认为 hzxy
agent/
├── app.py # 主程序文件
├── requirements.txt # Python依赖
├── start.sh # 启动脚本
├── README.md # 说明文档
├── builds/ # 构建临时目录
└── ~/.hzxy-agent-config.json # 配置文件
配置文件位置:~/.hzxy-agent-config.json
{
"DOCKERHUB_USERNAME": "your_username",
"DOCKERHUB_TOKEN": "your_token",
"MAINTAINER": "HZXY DevOps Team",
"SERVICE_PREFIX": "hzxy",
"BASE_IMAGE_NAME": "hzxy-webapp-base"
}
1. GUI模式无法启动
警告: 无法导入tkinter,GUI模式不可用
解决方案:
- macOS:
brew install python-tk
- Ubuntu:
sudo apt-get install python3-tk
- Windows: 重新安装Python并勾选tkinter组件
2. Docker构建失败
Cannot connect to the Docker daemon
解决方案:
- 确保Docker Desktop已启动
- 检查Docker服务状态
3. DockerHub推送失败
denied: requested access to the resource is denied
解决方案:
- 检查DockerHub用户名和Token是否正确
- 确保Token有推送权限
- GUI模式:查看界面底部的"构建日志"区域
- 命令行模式:直接在终端查看输出
- 构建过程中的临时文件在
builds/
目录
PublisherGUI
: GUI界面类build_and_push_image()
: 核心构建发布函数cli
: Click命令行接口- 配置管理:支持文件和环境变量
- 支持多种基础镜像
- 自定义Dockerfile模板
- 批量发布功能
- 发布历史记录
本项目采用自定义的非商业源码可见许可证(Source-Available License)。
版权所有 © 2024 萨达木·沙地克 (Sadam·Sadik)。保留所有权利。
联系方式: [email protected], [email protected]
- 软件著作权: 完全归属于作者
- 作品著作权: 完全归属于作者
- 专利所有权: 完全归属于作者
✅ 允许的用途:
- 个人学习和研究
- 教育用途
- 非营利性项目
- 学术研究
- 开源贡献和改进
❌ 禁止的用途:
- 任何形式的商业用途
- 盈利性项目或服务
- 商业销售、分发或授权
- 未经授权的专利实施
- 署名要求: 使用时必须保留原作者署名和版权声明
- 非商业限制: 严禁用于任何商业目的
- 源码开放: 基于本项目的衍生作品必须开源
- 权利保留: 作者保留软件著作权、作品著作权和专利权
- 授权撤回: 作者有权随时撤回对违反许可条款的用户的授权
如需商业使用,请联系作者获得商业授权许可。
免责声明: 本软件按"现状"提供,不提供任何明示或暗示的担保。作者不对使用本软件造成的任何损失承担责任。