1
0
mirror of https://github.com/rancher/os.git synced 2025-09-06 01:01:43 +00:00

Services as compose format

This commit is contained in:
Darren Shepherd
2015-04-15 23:16:23 -07:00
parent 61b5525d5b
commit be8fa8e5b7
6 changed files with 101 additions and 47 deletions

View File

@@ -170,11 +170,36 @@ func (c *Container) Reset() *Container {
return c
}
func (c *Container) requiresSyslog() bool {
return (c.ContainerCfg.Service.LogDriver == "" || c.ContainerCfg.Service.LogDriver == "syslog")
}
func (c *Container) hasLink(link string) bool {
return util.Contains(c.ContainerCfg.Service.Links, link)
}
func (c *Container) addLink(link string) {
c.ContainerCfg.Service.Links = append(c.ContainerCfg.Service.Links, link)
}
func (c *Container) parseService() {
if (c.ContainerCfg.Service.LogDriver == "" || c.ContainerCfg.Service.LogDriver == "syslog") &&
!util.Contains(c.ContainerCfg.Service.Links, "syslog") {
client, err := NewClient(c.dockerHost)
if err != nil {
c.Err = err
return
}
if c.ContainerCfg.Service.Image != "" {
i, _ := client.InspectImage(c.ContainerCfg.Service.Image)
if i == nil && !c.hasLink("network") {
log.Debugf("Adding network link to %s", c.Name)
c.addLink("network")
}
}
if c.requiresSyslog() && !c.hasLink("syslog") {
log.Debugf("Adding syslog link to %s\n", c.Name)
c.ContainerCfg.Service.Links = append(c.ContainerCfg.Service.Links, "syslog")
c.addLink("syslog")
}
cfg, hostConfig, err := docker.Convert(c.ContainerCfg.Service)