123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- // +build daemon
- package main
- import (
- "log"
- "github.com/docker/docker/builtins"
- "github.com/docker/docker/daemon"
- _ "github.com/docker/docker/daemon/execdriver/lxc"
- _ "github.com/docker/docker/daemon/execdriver/native"
- "github.com/docker/docker/dockerversion"
- "github.com/docker/docker/engine"
- flag "github.com/docker/docker/pkg/mflag"
- "github.com/docker/docker/pkg/signal"
- )
- const CanDaemon = true
- var (
- daemonCfg = &daemon.Config{}
- )
- func init() {
- daemonCfg.InstallFlags()
- }
- func mainDaemon() {
- if flag.NArg() != 0 {
- flag.Usage()
- return
- }
- eng := engine.New()
- signal.Trap(eng.Shutdown)
- // Load builtins
- if err := builtins.Register(eng); err != nil {
- log.Fatal(err)
- }
- // load the daemon in the background so we can immediately start
- // the http api so that connections don't fail while the daemon
- // is booting
- go func() {
- d, err := daemon.NewDaemon(daemonCfg, eng)
- if err != nil {
- log.Fatal(err)
- }
- if err := d.Install(eng); err != nil {
- log.Fatal(err)
- }
- // after the daemon is done setting up we can tell the api to start
- // accepting connections
- if err := eng.Job("acceptconnections").Run(); err != nil {
- log.Fatal(err)
- }
- }()
- // TODO actually have a resolved graphdriver to show?
- log.Printf("docker daemon: %s %s; execdriver: %s; graphdriver: %s",
- dockerversion.VERSION,
- dockerversion.GITCOMMIT,
- daemonCfg.ExecDriver,
- daemonCfg.GraphDriver,
- )
- // Serve api
- job := eng.Job("serveapi", flHosts...)
- job.SetenvBool("Logging", true)
- job.SetenvBool("EnableCors", *flEnableCors)
- job.Setenv("Version", dockerversion.VERSION)
- job.Setenv("SocketGroup", *flSocketGroup)
- job.SetenvBool("Tls", *flTls)
- job.SetenvBool("TlsVerify", *flTlsVerify)
- job.Setenv("TlsCa", *flCa)
- job.Setenv("TlsCert", *flCert)
- job.Setenv("TlsKey", *flKey)
- job.SetenvBool("BufferRequests", true)
- if err := job.Run(); err != nil {
- log.Fatal(err)
- }
- }
|