Skip to content

Instantly share code, notes, and snippets.

@retrohacker
Created March 31, 2015 19:06
Show Gist options
  • Save retrohacker/6cd8e2527332ad27e024 to your computer and use it in GitHub Desktop.
Save retrohacker/6cd8e2527332ad27e024 to your computer and use it in GitHub Desktop.
Example Debian init.d file for Docker
#!/bin/sh
### BEGIN INIT INFO
# Provides: dockerico
# Required-Start: docker
# Required-Stop: docker
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: A badging service for the docker registry.
# Description:
# dockeri.co is an opensource and free (as in speech and beer!) service for
# generating svg badges containing statistics about a docker image located
# on the docker repository.
### END INIT INFO
# Get lsb functions
. /lib/lsb/init-functions
NAME="dockeri.co"
IMAGE="wblankenship/dockeri.co"
TAG="latest"
ARGS="-p 80:8888"
PERSISTANCE=/var/${NAME}
HASH=$(docker images | grep -F "${IMAGE}" | grep -F "$TAG" | awk '{print $3}')
if [ -z "$HASH" ]; then
log_failure_msg "${NAME} is not installed. Please run $0 download"
exit 1
fi
download() {
docker pull "${IMAGE}:${TAG}" 2>/dev/null 1>/dev/null
}
start() {
mkdir -p "${PERSISTANCE}"
docker run -d ${ARGS} -v ${PERSISTANCE}:/var/log "${IMAGE}:${TAG}" 2>/dev/null 1>/dev/null
}
terminate() {
CONTAINER=$(docker ps -a | grep -F "${IMAGE}" | grep -F "${TAG}" | awk '{print $1}')
docker kill $CONTAINER 2>/dev/null 1>/dev/null
docker rm $CONTAINER 2>/dev/null 1>/dev/null
}
restart() {
terminate
start
}
case "$1" in
start)
log_begin_msg "Starting ${NAME}"
start
log_end_msg $?
;;
stop)
log_begin_msg "Stopping ${NAME}"
terminate
log_end_msg $?
;;
restart)
log_begin_msg "Restarting ${NAME}"
restart
log_end_msg $?
;;
update)
log_begin_msg "Updating ${NAME}"
download
log_end_msg $?
log_begin_msg "Restarting ${NAME}"
restart
log_end_msg $?
;;
status)
CONTAINER=$(docker ps -a | grep -F "${IMAGE}" | grep -F "${TAG}" | awk '{print $1}')
if [ -z "$CONTAINER" ]; then
log_begin_msg "${NAME} is not running"
log_end_msg 1
return 1
fi
log_begin_msg "${NAME} running"
log_end_msg 0
return 0
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment