зеркало из https://github.com/microsoft/docker.git
40 строки
910 B
Go
40 строки
910 B
Go
|
package runconfig
|
||
|
|
||
|
import (
|
||
|
"github.com/dotcloud/docker/engine"
|
||
|
"github.com/dotcloud/docker/nat"
|
||
|
)
|
||
|
|
||
|
type HostConfig struct {
|
||
|
Binds []string
|
||
|
ContainerIDFile string
|
||
|
LxcConf []KeyValuePair
|
||
|
Privileged bool
|
||
|
PortBindings nat.PortMap
|
||
|
Links []string
|
||
|
PublishAllPorts bool
|
||
|
}
|
||
|
|
||
|
type KeyValuePair struct {
|
||
|
Key string
|
||
|
Value string
|
||
|
}
|
||
|
|
||
|
func ContainerHostConfigFromJob(job *engine.Job) *HostConfig {
|
||
|
hostConfig := &HostConfig{
|
||
|
ContainerIDFile: job.Getenv("ContainerIDFile"),
|
||
|
Privileged: job.GetenvBool("Privileged"),
|
||
|
PublishAllPorts: job.GetenvBool("PublishAllPorts"),
|
||
|
}
|
||
|
job.GetenvJson("LxcConf", &hostConfig.LxcConf)
|
||
|
job.GetenvJson("PortBindings", &hostConfig.PortBindings)
|
||
|
if Binds := job.GetenvList("Binds"); Binds != nil {
|
||
|
hostConfig.Binds = Binds
|
||
|
}
|
||
|
if Links := job.GetenvList("Links"); Links != nil {
|
||
|
hostConfig.Links = Links
|
||
|
}
|
||
|
|
||
|
return hostConfig
|
||
|
}
|