Remove contrib/host-integration
It's outdated and unused. Signed-off-by: Alexander Morozov <lk4d4@docker.com>
This commit is contained in:
parent
74b9d89648
commit
0dec8091a2
6 changed files with 0 additions and 247 deletions
|
@ -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 <guillaume@docker.com>
|
|
||||||
|
|
||||||
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"]
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
FROM busybox
|
|
||||||
MAINTAINER Guillaume J. Charmes <guillaume@docker.com>
|
|
||||||
ADD manager /usr/bin/
|
|
||||||
ENTRYPOINT ["/usr/bin/manager"]
|
|
|
@ -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", "<none>", "Author of the image")
|
|
||||||
description := flag.String("d", "<none>", "Description of the image")
|
|
||||||
flag.Usage = func() {
|
|
||||||
fmt.Fprintf(os.Stderr, "\nUsage: manager <container id>\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 == "<none>" && img[0].Author != "" {
|
|
||||||
*author = strings.Replace(img[0].Author, "\"", "", -1)
|
|
||||||
}
|
|
||||||
// If no description has been set, use the comment from the image
|
|
||||||
if *description == "<none>" && 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)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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='<none>'
|
|
||||||
desc='<none>'
|
|
||||||
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"
|
|
|
@ -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
|
|
|
@ -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
|
|
Loading…
Reference in a new issue