用于 dockerhub 自动部署的 Webhook 处理程序
项目描述
dockerhub-webhook监听来自 dockerhub 的 HTTP POST 请求,并在新容器可用时触发您的脚本进行更新。
特征
Python 3.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 的配置文件,将脚本映射到传入的存储库挂钩。我们可以从示例 config.py 开始并填写列出的变量。
cp config.py.example config.py
要生成 apikey,您可以使用 openssl 或 pwgen 等工具。
openssl rand -base64 30 | sed 's=/=\\/=g'
pwgen 30 1
或者,您可以使用您的密钥设置$DOCKERHOOK_TOKEN环境变量。这将覆盖 config.py 中的任何内容。
config.py 中的HOOKS字典将存储库名称映射到服务器端部署脚本。键是存储库的名称(无命名空间),值是要调用的脚本的完整路径,或当前工作目录的相对路径。
HOOKS = {'repo1': '/full/path/to/script.sh',
'repo2': 'relative_path_to_script.sh'
}
WSGI 服务器(前Gunicorn)
强烈建议您安装一个生产就绪的WSGI 服务器,而不是使用 Flask (Werkzeug) 打包的服务器,因为它面向开发。这是一个如何使用 Gunicorn 启动应用程序的快速示例。Gunicorn 通常由 nginx 反向代理。
注意:dockerhub-webhook在当前工作目录中查找config.py 。
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 集线器
单击要自动部署的存储库
在 Webhook 选项卡下添加一个 webhook
选择任何你喜欢的名字
对于 Webhook URL,请使用以下内容:
http://example.com/hubhook?key=secret
将域和端点调整为您的反向代理设置,并将 secret替换为您的 API 密钥。
执照
dockerhub-webhook 源代码在Apachi 2.0 License下提供。
版权所有 (c),2017,PrasieBeToScience。
发展
Webhook 使用github-flow来管理分支,并尽可能遵循PEP8 。
要启动 Flask 的开发 Werkzeug 服务器,您可以使用run.py。
您可以使用python setup.py test运行 pytest unittests 。
项目详情
dockerhub_webhook -0.2.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7627a4cc3d0f40274c26bdb7bfd5147117598bdbd851acbb0dff4b395ff60fa3 |
|
MD5 | 328e48988f4190c6f3f86d2c2cd6a229 |
|
布莱克2-256 | 7fe9fd3fb6b453b7a3819ba36b903b4390bbefab603f5b17b4ee08c84c415ba5 |