1
0
mirror of https://github.com/vimagick/dockerfiles.git synced 2024-11-24 08:52:15 +02:00
dockerfiles/webhook
2015-11-05 18:22:30 +08:00
..
docker-compose.yml update doc 2015-11-05 12:34:14 +08:00
Dockerfile fix webhook 2015-11-05 12:24:32 +08:00
Makefile update Makefile 2015-11-05 18:22:30 +08:00
README.md update doc 2015-11-05 12:34:14 +08:00
webhook add webhook 2015-11-05 11:32:10 +08:00

webhook

webhook is a lightweight configurable tool written in Go, that allows you to easily create HTTP endpoints (hooks) on your server, which you can use to execute configured commands.

Directory Tree

~/fig/webhook/
├── docker-compose.yml
└── scripts/
    ├── hooks.json
    └── test.sh* (executable)

docker-compose.yml

webhook:
  image: vimagick/webhook
  command: -hooks hooks.json -verbose
  ports:
    - "9000:9000"
  volumes:
    - "./scripts:/scripts"
  restart: always

hooks.json

[
  {
    "id": "test",
    "execute-command": "/scripts/test.sh",
    "command-working-directory": "/scripts"
  }
]

test.sh

#!/bin/bash
echo 'hello world'

Up and Running

$ cd ~/fig/webhook/

$ docker-compose up -d
Creating webhook_webhook_1...

$ curl http://localhost:9000/hooks/test

$ docker-compose logs
Attaching to webhook_webhook_1
webhook_1 | [webhook] 2015/11/05 04:26:52 version 2.3.5 starting
webhook_1 | [webhook] 2015/11/05 04:26:52 setting up os signal watcher
webhook_1 | [webhook] 2015/11/05 04:26:52 attempting to load hooks from hooks.json
webhook_1 | [webhook] 2015/11/05 04:26:52 loaded 1 hook(s) from file
webhook_1 | [webhook] 2015/11/05 04:26:52       > test
webhook_1 | [webhook] 2015/11/05 04:26:52 starting insecure (http) webhook on :9000
webhook_1 | [webhook] 2015/11/05 04:26:52 os signal watcher ready
webhook_1 | [webhook] 2015/11/05 04:27:11 Started GET /hooks/test
webhook_1 | [webhook] 2015/11/05 04:27:11 Completed 200 OK in 390.207µs
webhook_1 | [webhook] 2015/11/05 04:27:11 test got matched (1 time(s))
webhook_1 | [webhook] 2015/11/05 04:27:11 test hook triggered successfully
webhook_1 | [webhook] 2015/11/05 04:27:11 executing /scripts/test.sh (/scripts/test.sh) with arguments [/scripts/test.sh] using /scripts as cwd
webhook_1 | [webhook] 2015/11/05 04:27:11 command output: hello world
webhook_1 |
webhook_1 | [webhook] 2015/11/05 04:27:11 finished handling test