DockerHub自动部署的Webhook处理程序
dockerhub-webhook的Python项目详细描述
dockerhub webhook侦听来自dockerhub和 当新容器可用时触发脚本更新。
功能
- Python3.3+支持。
- PIP安装可用
- 轻量级-使用Flask构建。
- 支持无限数量的触发器。
- 完整的日志记录支持,包括脚本错误。
安装(选项1:来自git)
python 3.3、3.4、3.5和3.6支持dockerhub webhook。安装 从github存储库中,第一步是克隆它。
git clone https://github.com/Praisebetoscience/dockerhub-webhook.git
然后安装依赖项。
pip install -r requirements.txt
接下来我们需要创建包含apikey、maps脚本的配置文件 到传入的存储库挂钩。我们可以从示例config.py和 填写列出的变量。
cp config.py.example config.py
要生成apikey,可以使用openssl或pwgen等工具。
openssl rand -base64 30| sed 's=/=\\/=g' pwgen 301
或者,您可以使用 钥匙这将覆盖config.py中的任何内容。
config.py中的HOOKSdict将respository名称映射到服务器端部署 剧本。键是存储库的名称(没有名称空间),值是 要调用的脚本的完整路径,或当前脚本的相对路径 工作目录。
HOOKS={'repo1':'/full/path/to/script.sh','repo2':'relative_path_to_script.sh'}
wsgi服务器(例如Gunicorn)
建议您安装一个生产就绪的wsgi服务器并 不要使用装有烧瓶(Werkzeug)的服务器,因为它是齿轮传动的 走向发展。下面是一个如何启动 使用Gunicorn的应用程序。GuniCORN通常被反向代理。 恩吉恩斯。
注意:DockerHub Webhook在当前 工作目录。
pip install gunicorn
gunicorn dockerhook:app -w 1 -b <host_ip>:<port>
安装(选项2:PIP)
从github安装最大的缺点是目录结构 其中需要创建配置文件、日志和可选脚本
mkdir -p dockerhook/log mkdir -p dockerhook/scripts
您可以如上所述创建配置文件,但不必使用 源代码,您必须直接下载示例。
cd dockerhook
wget -o config.py https://raw.githubusercontent.com/Praisebetoscience/dockerhub-webhook/master/config.py.example
使用pip安装
pip install dockerhub-webhook
配置Docker Hub
- 转到https://hub.docker.com
- 单击要自动部署的存储库
- 在Webhooks选项卡下添加Webhook
- 请选择任何名称
- 对于webhook url,请使用以下内容:
http://example.com/hubhook?key=secret
将域和终结点调整为反向代理设置,并替换 secret使用您的api密钥。
开发
webhook使用github-flow来管理分支,并遵循PEP8以及 可能的。
要开始Flask的Werkzeug服务器开发,您可以使用^{TT5}$。
您可以使用python setup.py test运行pytest unittests。