Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ehazlett/conduit

Deployment system for Docker
https://github.com/ehazlett/conduit

Last synced: about 1 month ago
JSON representation

Deployment system for Docker

Awesome Lists containing this project

README

        

# Conduit
Experimental deployment system for Docker.

Conduit exposes an endpoint that receives webhooks (i.e. from Docker Hub). Upon receiving the hook, Conduit will pull the new image, deploy a new container from the updated image and then remove the original container.

# Usage
Docker.

```
docker run
-d
--name conduit
-p 8080:8080
-v /var/run/docker.sock:/var/run/docker.sock
ehazlett/conduit -r -t
```

Where `` is a Docker repository name such as `ehazlett/go-demo` and `` is a custom token string. The `-r` arg can be specified multiple times.

Example:

```
docker run
-d
--name conduit
-p 8080:8080
-v /var/run/docker.sock:/var/run/docker.sock
ehazlett/conduit -r ehazlett/go-demo -t s3cr3+
```
Then add a webhook url to `http://:?token=`

You can also specify a list of tags for deploy. Conduit will only deploy
and rotate containers that are using that tag. For example, if you have
containers with both `v1` and `v2` tags running, if you specify `v2` as a tag
in Conduit, it will only deploy the `v2` containers when receiving a webhook.

# Testing
To simulate a webhook using curl:

```
curl -d '{"repository": {"repo_name": "namespace/reponame"}}' http://:8080?token=yourtoken
```