diff --git a/contrib/host-integration/Dockerfile.dev b/contrib/host-integration/Dockerfile.dev deleted file mode 100644 index c8df852899..0000000000 --- a/contrib/host-integration/Dockerfile.dev +++ /dev/null @@ -1,25 +0,0 @@ -# -# This Dockerfile will create an image that allows to generate upstart and -# systemd scripts (more to come) -# - -FROM ubuntu:12.10 -MAINTAINER Guillaume J. Charmes - -RUN apt-get update && apt-get install -y wget git mercurial - -# Install Go -RUN wget --no-check-certificate https://go.googlecode.com/files/go1.1.2.linux-amd64.tar.gz -O go-1.1.2.tar.gz -RUN tar -xzvf go-1.1.2.tar.gz && mv /go /goroot -RUN mkdir /go - -ENV GOROOT /goroot -ENV GOPATH /go -ENV PATH $GOROOT/bin:$PATH - -RUN go get github.com/docker/docker && cd /go/src/github.com/docker/docker && git checkout v0.6.3 -ADD manager.go /manager/ -RUN cd /manager && go build -o /usr/bin/manager - -ENTRYPOINT ["/usr/bin/manager"] - diff --git a/contrib/host-integration/Dockerfile.min b/contrib/host-integration/Dockerfile.min deleted file mode 100644 index 60bb89b986..0000000000 --- a/contrib/host-integration/Dockerfile.min +++ /dev/null @@ -1,4 +0,0 @@ -FROM busybox -MAINTAINER Guillaume J. Charmes -ADD manager /usr/bin/ -ENTRYPOINT ["/usr/bin/manager"] diff --git a/contrib/host-integration/manager.go b/contrib/host-integration/manager.go deleted file mode 100644 index c0b488b2f1..0000000000 --- a/contrib/host-integration/manager.go +++ /dev/null @@ -1,130 +0,0 @@ -package main - -import ( - "bytes" - "encoding/json" - "flag" - "fmt" - "github.com/docker/docker" - "os" - "strings" - "text/template" -) - -var templates = map[string]string{ - - "upstart": `description "{{.description}}" -author "{{.author}}" -start on filesystem and started lxc-net and started docker -stop on runlevel [!2345] -respawn -exec /home/vagrant/goroot/bin/docker start -a {{.container_id}} -`, - - "systemd": `[Unit] - Description={{.description}} - Author={{.author}} - After=docker.service - -[Service] - Restart=always - ExecStart=/usr/bin/docker start -a {{.container_id}} - ExecStop=/usr/bin/docker stop -t 2 {{.container_id}} - -[Install] - WantedBy=local.target -`, -} - -func main() { - // Parse command line for custom options - kind := flag.String("t", "upstart", "Type of manager requested") - author := flag.String("a", "", "Author of the image") - description := flag.String("d", "", "Description of the image") - flag.Usage = func() { - fmt.Fprintf(os.Stderr, "\nUsage: manager \n\n") - flag.PrintDefaults() - } - flag.Parse() - - // We require at least the container ID - if flag.NArg() != 1 { - println(flag.NArg()) - flag.Usage() - return - } - - // Check that the requested process manager is supported - if _, exists := templates[*kind]; !exists { - panic("Unknown script template") - } - - // Load the requested template - tpl, err := template.New("processManager").Parse(templates[*kind]) - if err != nil { - panic(err) - } - - // Create stdout/stderr buffers - bufOut := bytes.NewBuffer(nil) - bufErr := bytes.NewBuffer(nil) - - // Instanciate the Docker CLI - cli := docker.NewDockerCli(nil, bufOut, bufErr, "unix", "/var/run/docker.sock", false, nil) - // Retrieve the container info - if err := cli.CmdInspect(flag.Arg(0)); err != nil { - // As of docker v0.6.3, CmdInspect always returns nil - panic(err) - } - - // If there is nothing in the error buffer, then the Docker daemon is there and the container has been found - if bufErr.Len() == 0 { - // Unmarshall the resulting container data - c := []*docker.Container{{}} - if err := json.Unmarshal(bufOut.Bytes(), &c); err != nil { - panic(err) - } - // Reset the buffers - bufOut.Reset() - bufErr.Reset() - // Retrieve the info of the linked image - if err := cli.CmdInspect(c[0].Image); err != nil { - panic(err) - } - // If there is nothing in the error buffer, then the image has been found. - if bufErr.Len() == 0 { - // Unmarshall the resulting image data - img := []*docker.Image{{}} - if err := json.Unmarshal(bufOut.Bytes(), &img); err != nil { - panic(err) - } - // If no author has been set, use the one from the image - if *author == "" && img[0].Author != "" { - *author = strings.Replace(img[0].Author, "\"", "", -1) - } - // If no description has been set, use the comment from the image - if *description == "" && img[0].Comment != "" { - *description = strings.Replace(img[0].Comment, "\"", "", -1) - } - } - } - - /// Old version: Wrtie the resulting script to file - // f, err := os.OpenFile(kind, os.O_CREATE|os.O_WRONLY, 0755) - // if err != nil { - // panic(err) - // } - // defer f.Close() - - // Create a map with needed data - data := map[string]string{ - "author": *author, - "description": *description, - "container_id": flag.Arg(0), - } - - // Process the template and output it on Stdout - if err := tpl.Execute(os.Stdout, data); err != nil { - panic(err) - } -} diff --git a/contrib/host-integration/manager.sh b/contrib/host-integration/manager.sh deleted file mode 100755 index 8ea296f5a5..0000000000 --- a/contrib/host-integration/manager.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -set -e - -usage() { - echo >&2 "usage: $0 [-a author] [-d description] container [manager]" - echo >&2 " ie: $0 -a 'John Smith' 4ec9612a37cd systemd" - echo >&2 " ie: $0 -d 'Super Cool System' 4ec9612a37cd # defaults to upstart" - exit 1 -} - -auth='' -desc='' -have_auth= -have_desc= -while getopts a:d: opt; do - case "$opt" in - a) - auth="$OPTARG" - have_auth=1 - ;; - d) - desc="$OPTARG" - have_desc=1 - ;; - esac -done -shift $(($OPTIND - 1)) - -[ $# -ge 1 -a $# -le 2 ] || usage - -cid="$1" -script="${2:-upstart}" -if [ ! -e "manager/$script" ]; then - echo >&2 "Error: manager type '$script' is unknown (PRs always welcome!)." - echo >&2 'The currently supported types are:' - echo >&2 " $(cd manager && echo *)" - exit 1 -fi - -# TODO https://github.com/docker/docker/issues/734 (docker inspect formatting) -#if command -v docker > /dev/null 2>&1; then -# image="$(docker inspect -f '{{.Image}}' "$cid")" -# if [ "$image" ]; then -# if [ -z "$have_auth" ]; then -# auth="$(docker inspect -f '{{.Author}}' "$image")" -# fi -# if [ -z "$have_desc" ]; then -# desc="$(docker inspect -f '{{.Comment}}' "$image")" -# fi -# fi -#fi - -exec "manager/$script" "$cid" "$auth" "$desc" diff --git a/contrib/host-integration/manager/systemd b/contrib/host-integration/manager/systemd deleted file mode 100755 index c1ab34ef0f..0000000000 --- a/contrib/host-integration/manager/systemd +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -set -e - -cid="$1" -auth="$2" -desc="$3" - -cat <<-EOF - [Unit] - Description=$desc - Author=$auth - After=docker.service - - [Service] - ExecStart=/usr/bin/docker start -a $cid - ExecStop=/usr/bin/docker stop -t 2 $cid - - [Install] - WantedBy=local.target -EOF diff --git a/contrib/host-integration/manager/upstart b/contrib/host-integration/manager/upstart deleted file mode 100755 index af90f1fddd..0000000000 --- a/contrib/host-integration/manager/upstart +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -set -e - -cid="$1" -auth="$2" -desc="$3" - -cat <<-EOF - description "$(echo "$desc" | sed 's/"/\\"/g')" - author "$(echo "$auth" | sed 's/"/\\"/g')" - start on filesystem and started lxc-net and started docker - stop on runlevel [!2345] - respawn - exec /usr/bin/docker start -a "$cid" -EOF