b7daa2f3a4
Update traefik dependencies (docker/docker and related) - Update dependencies - Fix compilation problems - Remove vdemeester/docker-events (in docker api now) - Remove `integration/vendor` - Use `testImport` - update some deps. - regenerate the lock from scratch (after a `glide cc`)
44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package config
|
|
|
|
import (
|
|
"github.com/docker/libcompose/utils"
|
|
"github.com/docker/libcompose/yaml"
|
|
)
|
|
|
|
// ConvertServices converts a set of v1 service configs to v2 service configs
|
|
func ConvertServices(v1Services map[string]*ServiceConfigV1) (map[string]*ServiceConfig, error) {
|
|
v2Services := make(map[string]*ServiceConfig)
|
|
replacementFields := make(map[string]*ServiceConfig)
|
|
|
|
for name, service := range v1Services {
|
|
replacementFields[name] = &ServiceConfig{
|
|
Build: yaml.Build{
|
|
Context: service.Build,
|
|
Dockerfile: service.Dockerfile,
|
|
},
|
|
Logging: Log{
|
|
Driver: service.LogDriver,
|
|
Options: service.LogOpt,
|
|
},
|
|
NetworkMode: service.Net,
|
|
}
|
|
|
|
v1Services[name].Build = ""
|
|
v1Services[name].Dockerfile = ""
|
|
v1Services[name].LogDriver = ""
|
|
v1Services[name].LogOpt = nil
|
|
v1Services[name].Net = ""
|
|
}
|
|
|
|
if err := utils.Convert(v1Services, &v2Services); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
for name := range v2Services {
|
|
v2Services[name].Build = replacementFields[name].Build
|
|
v2Services[name].Logging = replacementFields[name].Logging
|
|
v2Services[name].NetworkMode = replacementFields[name].NetworkMode
|
|
}
|
|
|
|
return v2Services, nil
|
|
}
|