1.3.0 • Published 11 years ago
specialone v1.3.0
Specialone
unique docker container with etcd service discovery.
Concept
kills old container with same SP_GROUP environment
Usage
npm intall
sudo npm install -g specialone
on Docker host
sudo specialone
Usage with Docker
on build
sudo docker build -t flrngel/specialone .
running daemon
sudo docker run --net=host -d -v /var/run/docker.sock:/var/run/docker.sock flrngel/specialone
environments
SP_INTERVAL- miliseconds interval to check containersSP_NO_KILL- flag havingtrueorfalsevalue to kill containerSP_KILL_WAIT- waiting seconds to kill before ondocker stopSP_KILL_TIMEOUT- seconds to kill after timeout ondocker stopSP_ETCD_HOST- etcd hostex) 127.0.0.1:4001SP_ETCD_TTL- TTL for etcd keys
to group container, give docker environment as
SP_GROUP- specialone will kill old containers with same group nameSP_KILL_WAIT- overwrite waiting seconds to kill before ondocker stopSP_KILL_TIMEOUT- overwrite seconds to kill after timeout ondocker stop
Example
$ sudo docker run -d -v /var/run/docker.sock:/var/run/docker.sock flrngel/specialone
c9c334b73d20a9b6e1ae7c99abe36a0892f38661b5c4f1d9ca3985aff2cb8a4a
$ sudo docker run -d --name old -e SP_GROUP=redis redis:2.8.10
184ccc2879abf63b0ba87ec9d43ea3e2b088449656220912d01eba2bb1e9686f
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
184ccc2879ab redis:2.8.10 "/entrypoint.sh redi 3 seconds ago Up 2 seconds 6379/tcp old
c9c334b73d20 flrngel/specialone:latest "npm start" 18 seconds ago Up 17 seconds pensive_lalande
$ sudo docker run -d --name new -e SP_GROUP=redis redis:2.8.12
bf54222669f92e167ecbacaa2f1cb0f4aa2740788d89486b0ce1c9a3ba085769
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bf54222669f9 redis:2.8.12 "/entrypoint.sh redi 2 seconds ago Up 1 seconds 6379/tcp new
c9c334b73d20 flrngel/specialone:latest "npm start" About a minute ago Up About a minute pensive_lalande ETCD
- groups are in
sp/assp/<SP_GROUP> - discovery container as
sp/<SP_GROUP>/<HOST_IP>:<CONTAINER_PORT>
TODO
- logging
- haproxy for port-exposed containers