Skip to main content

用于 dockerhub 自动部署的 Webhook 处理程序

项目描述

派皮版本 特拉维斯 CI 状态 工作服覆盖范围 代码气候等级 Requires.io 检查

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 集线器

  1. 转到https://hub.docker.com

  2. 单击要自动部署的存储库

  3. 在 Webhook 选项卡下添加一个 webhook

  4. 选择任何你喜欢的名字

  5. 对于 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.tar.gz (6.8 kB 查看哈希

已上传 source

内置分布

dockerhub_webhook-0.2.1-py3-none-any.whl (9.7 kB 查看哈希

已上传 3 5