Skip to content

Commit

Permalink
Actually check metadata from port. Fix ENV variable order dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
JohnyDays committed Sep 10, 2015
1 parent dd3ab2e commit c4e31cc
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
4 changes: 2 additions & 2 deletions bridge/bridge.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ func (b *Bridge) newService(port ServicePort, isgroup bool) *Service {
port.HostIP = b.config.HostIp
}

metadata := serviceMetaData(container.Config, port.ExposedPort)
metadata, metadataFromPort := serviceMetaData(container.Config, port.ExposedPort)

ignore := mapDefault(metadata, "ignore", "")
if ignore != "" {
Expand All @@ -206,7 +206,7 @@ func (b *Bridge) newService(port ServicePort, isgroup bool) *Service {
service.Origin = port
service.ID = hostname + ":" + container.Name[1:] + ":" + port.ExposedPort
service.Name = mapDefault(metadata, "name", defaultName)
if isgroup && metadata["name"] == "" {
if isgroup && !metadataFromPort["name"] {
service.Name += "-" + port.ExposedPort
}
var p int
Expand Down
9 changes: 7 additions & 2 deletions bridge/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,29 +30,34 @@ func combineTags(tagParts ...string) []string {
return tags
}

func serviceMetaData(config *dockerapi.Config, port string) map[string]string {
func serviceMetaData(config *dockerapi.Config, port string) (map[string]string, map[string]bool) {
meta := config.Env
for k, v := range config.Labels {
meta = append(meta, k + "=" + v)
}
metadata := make(map[string]string)
metadataFromPort := make(map[string]bool)
for _, kv := range meta {
kvp := strings.SplitN(kv, "=", 2)
if strings.HasPrefix(kvp[0], "SERVICE_") && len(kvp) > 1 {
key := strings.ToLower(strings.TrimPrefix(kvp[0], "SERVICE_"))
if metadataFromPort[key] {
continue
}
portkey := strings.SplitN(key, "_", 2)
_, err := strconv.Atoi(portkey[0])
if err == nil && len(portkey) > 1 {
if portkey[0] != port {
continue
}
metadata[portkey[1]] = kvp[1]
metadataFromPort[portkey[1]] = true
} else {
metadata[key] = kvp[1]
}
}
}
return metadata
return metadata, metadataFromPort
}

func servicePort(container *dockerapi.Container, port dockerapi.Port, published []dockerapi.PortBinding) ServicePort {
Expand Down

0 comments on commit c4e31cc

Please sign in to comment.