mirror of https://github.com/docker/docs.git
Add support for multiple backends piped together
Docker-DCO-1.1-Signed-off-by: Ben Firshman <ben@firshman.co.uk> (github: bfirsh)
This commit is contained in:
parent
a0874d7b1c
commit
3bb782faf1
|
|
@ -43,30 +43,37 @@ func cmdDaemon(c *cli.Context) {
|
||||||
fmt.Println(strings.Join(names, "\n"))
|
fmt.Println(strings.Join(names, "\n"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
bName, bArgs, err := parseCmd(c.Args()[0])
|
var previousInstanceIn beam.Receiver
|
||||||
if err != nil {
|
for _, backendArg := range c.Args() {
|
||||||
Fatalf("parse: %v", err)
|
bName, bArgs, err := parseCmd(backendArg)
|
||||||
|
if err != nil {
|
||||||
|
Fatalf("parse: %v", err)
|
||||||
|
}
|
||||||
|
fmt.Printf("---> Loading backend '%s'\n", strings.Join(append([]string{bName}, bArgs...), " "))
|
||||||
|
_, backend, err := back.Attach(bName)
|
||||||
|
if err != nil {
|
||||||
|
Fatalf("%s: %v\n", bName, err)
|
||||||
|
}
|
||||||
|
fmt.Printf("---> Spawning\n")
|
||||||
|
instance, err := backend.Spawn(bArgs...)
|
||||||
|
if err != nil {
|
||||||
|
Fatalf("spawn %s: %v\n", bName, err)
|
||||||
|
}
|
||||||
|
fmt.Printf("---> Attaching\n")
|
||||||
|
instanceIn, instanceOut, err := instance.Attach("")
|
||||||
|
if err != nil {
|
||||||
|
Fatalf("attach: %v", err)
|
||||||
|
}
|
||||||
|
fmt.Printf("---> Starting\n")
|
||||||
|
if err := instance.Start(); err != nil {
|
||||||
|
Fatalf("start: %v", err)
|
||||||
|
}
|
||||||
|
if previousInstanceIn != nil {
|
||||||
|
go beam.Copy(instanceOut, previousInstanceIn)
|
||||||
|
}
|
||||||
|
previousInstanceIn = instanceIn
|
||||||
}
|
}
|
||||||
fmt.Printf("---> Loading backend '%s'\n", strings.Join(append([]string{bName}, bArgs...), " "))
|
_, err := beam.Copy(app, previousInstanceIn)
|
||||||
_, backend, err := back.Attach(bName)
|
|
||||||
if err != nil {
|
|
||||||
Fatalf("%s: %v\n", bName, err)
|
|
||||||
}
|
|
||||||
fmt.Printf("---> Spawning\n")
|
|
||||||
instance, err := backend.Spawn(bArgs...)
|
|
||||||
if err != nil {
|
|
||||||
Fatalf("spawn %s: %v\n", bName, err)
|
|
||||||
}
|
|
||||||
fmt.Printf("---> Attaching\n")
|
|
||||||
instanceIn, _, err := instance.Attach("")
|
|
||||||
if err != nil {
|
|
||||||
Fatalf("attach: %v", err)
|
|
||||||
}
|
|
||||||
fmt.Printf("---> Starting\n")
|
|
||||||
if err := instance.Start(); err != nil {
|
|
||||||
Fatalf("start: %v", err)
|
|
||||||
}
|
|
||||||
_, err = beam.Copy(app, instanceIn)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
Fatalf("copy: %v", err)
|
Fatalf("copy: %v", err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue