mirror of
https://github.com/vimagick/dockerfiles.git
synced 2024-12-25 02:04:06 +02:00
94 lines
2.4 KiB
Markdown
94 lines
2.4 KiB
Markdown
webhook
|
|
=======
|
|
|
|
![](https://badge.imagelayers.io/vimagick/webhook:latest.svg)
|
|
|
|
[webhook][1] 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.
|
|
|
|
## Build Binary
|
|
|
|
To build a docker image from scratch, we need to build static linked binary.
|
|
|
|
```bash
|
|
$ go get -d github.com/adnanh/webhook
|
|
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -installsuffix cgo -ldflags '-s -extld ld -extldflags -static' -a -x -o webhook github.com/adnanh/webhook
|
|
$ file webhook
|
|
```
|
|
|
|
## 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/
|
|
|
|
$ chmod +x scripts/test.sh
|
|
|
|
$ 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
|
|
```
|
|
|
|
[1]: https://github.com/adnanh/webhook
|