func NewServiceConfigs() *ServiceConfigs {
	return &ServiceConfigs{
		m: make(map[string]*ServiceConfig),
	}
}
NewServiceConfigs initializes a new Configs struct
package config
import (
	"sync"
	"github.com/docker/libcompose/yaml"
)
type EnvironmentLookup interface {
	Lookup(key, serviceName string, config *ServiceConfig) []string
}
type ResourceLookup interface {
	Lookup(file, relativeTo string) ([]byte, string, error)
	ResolvePath(path, inFile string) string
}
type ServiceConfigV1 struct {
	Build         string               `yaml:"build,omitempty"`
	CapAdd        []string             `yaml:"cap_add,omitempty"`
	CapDrop       []string             `yaml:"cap_drop,omitempty"`
	CgroupParent  string               `yaml:"cgroup_parent,omitempty"`
	CPUQuota      yaml.StringorInt     `yaml:"cpu_quota,omitempty"`
	CPUSet        string               `yaml:"cpuset,omitempty"`
	CPUShares     yaml.StringorInt     `yaml:"cpu_shares,omitempty"`
	Command       yaml.Command         `yaml:"command,flow,omitempty"`
	ContainerName string               `yaml:"container_name,omitempty"`
	Devices       []string             `yaml:"devices,omitempty"`
	DNS           yaml.Stringorslice   `yaml:"dns,omitempty"`
	DNSSearch     yaml.Stringorslice   `yaml:"dns_search,omitempty"`
	Dockerfile    string               `yaml:"dockerfile,omitempty"`
	DomainName    string               `yaml:"domainname,omitempty"`
	Entrypoint    yaml.Command         `yaml:"entrypoint,flow,omitempty"`
	EnvFile       yaml.Stringorslice   `yaml:"env_file,omitempty"`
	Environment   yaml.MaporEqualSlice `yaml:"environment,omitempty"`
	Hostname      string               `yaml:"hostname,omitempty"`
	Image         string               `yaml:"image,omitempty"`
	Labels        yaml.SliceorMap      `yaml:"labels,omitempty"`
	Links         yaml.MaporColonSlice `yaml:"links,omitempty"`
	LogDriver     string               `yaml:"log_driver,omitempty"`
	MacAddress    string               `yaml:"mac_address,omitempty"`
	MemLimit      yaml.StringorInt     `yaml:"mem_limit,omitempty"`
	MemSwapLimit  yaml.StringorInt     `yaml:"memswap_limit,omitempty"`
	Name          string               `yaml:"name,omitempty"`
	Net           string               `yaml:"net,omitempty"`
	Pid           string               `yaml:"pid,omitempty"`
	Uts           string               `yaml:"uts,omitempty"`
	Ipc           string               `yaml:"ipc,omitempty"`
	Ports         []string             `yaml:"ports,omitempty"`
	Privileged    bool                 `yaml:"privileged,omitempty"`
	Restart       string               `yaml:"restart,omitempty"`
	ReadOnly      bool                 `yaml:"read_only,omitempty"`
	ShmSize       yaml.StringorInt     `yaml:"shm_size,omitempty"`
	StdinOpen     bool                 `yaml:"stdin_open,omitempty"`
	SecurityOpt   []string             `yaml:"security_opt,omitempty"`
	Tty           bool                 `yaml:"tty,omitempty"`
	User          string               `yaml:"user,omitempty"`
	VolumeDriver  string               `yaml:"volume_driver,omitempty"`
	Volumes       []string             `yaml:"volumes,omitempty"`
	VolumesFrom   []string             `yaml:"volumes_from,omitempty"`
	WorkingDir    string               `yaml:"working_dir,omitempty"`
	Expose        []string             `yaml:"expose,omitempty"`
	ExternalLinks []string             `yaml:"external_links,omitempty"`
	LogOpt        map[string]string    `yaml:"log_opt,omitempty"`
	ExtraHosts    []string             `yaml:"extra_hosts,omitempty"`
	Ulimits       yaml.Ulimits         `yaml:"ulimits,omitempty"`
}
type Log struct {
	Driver  string            `yaml:"driver,omitempty"`
	Options map[string]string `yaml:"options,omitempty"`
}
type ServiceConfig struct {
	Build         yaml.Build           `yaml:"build,omitempty"`
	CapAdd        []string             `yaml:"cap_add,omitempty"`
	CapDrop       []string             `yaml:"cap_drop,omitempty"`
	CPUSet        string               `yaml:"cpuset,omitempty"`
	CPUShares     yaml.StringorInt     `yaml:"cpu_shares,omitempty"`
	CPUQuota      yaml.StringorInt     `yaml:"cpu_quota,omitempty"`
	Command       yaml.Command         `yaml:"command,flow,omitempty"`
	CgroupParent  string               `yaml:"cgroup_parent,omitempty"`
	ContainerName string               `yaml:"container_name,omitempty"`
	Devices       []string             `yaml:"devices,omitempty"`
	DependsOn     []string             `yaml:"depends_on,omitempty"`
	DNS           yaml.Stringorslice   `yaml:"dns,omitempty"`
	DNSSearch     yaml.Stringorslice   `yaml:"dns_search,omitempty"`
	DomainName    string               `yaml:"domainname,omitempty"`
	Entrypoint    yaml.Command         `yaml:"entrypoint,flow,omitempty"`
	EnvFile       yaml.Stringorslice   `yaml:"env_file,omitempty"`
	Environment   yaml.MaporEqualSlice `yaml:"environment,omitempty"`
	Expose        []string             `yaml:"expose,omitempty"`
	Extends       yaml.MaporEqualSlice `yaml:"extends,omitempty"`
	ExternalLinks []string             `yaml:"external_links,omitempty"`
	ExtraHosts    []string             `yaml:"extra_hosts,omitempty"`
	Image         string               `yaml:"image,omitempty"`
	Hostname      string               `yaml:"hostname,omitempty"`
	Ipc           string               `yaml:"ipc,omitempty"`
	Labels        yaml.SliceorMap      `yaml:"labels,omitempty"`
	Links         yaml.MaporColonSlice `yaml:"links,omitempty"`
	Logging       Log                  `yaml:"logging,omitempty"`
	MacAddress    string               `yaml:"mac_address,omitempty"`
	MemLimit      yaml.StringorInt     `yaml:"mem_limit,omitempty"`
	MemSwapLimit  yaml.StringorInt     `yaml:"memswap_limit,omitempty"`
	NetworkMode   string               `yaml:"network_mode,omitempty"`
	Networks      *yaml.Networks       `yaml:"networks,omitempty"`
	Pid           string               `yaml:"pid,omitempty"`
	Ports         []string             `yaml:"ports,omitempty"`
	Privileged    bool                 `yaml:"privileged,omitempty"`
	SecurityOpt   []string             `yaml:"security_opt,omitempty"`
	ShmSize       yaml.StringorInt     `yaml:"shm_size,omitempty"`
	StopSignal    string               `yaml:"stop_signal,omitempty"`
	VolumeDriver  string               `yaml:"volume_driver,omitempty"`
	Volumes       *yaml.Volumes        `yaml:"volumes,omitempty"`
	VolumesFrom   []string             `yaml:"volumes_from,omitempty"`
	Uts           string               `yaml:"uts,omitempty"`
	Restart       string               `yaml:"restart,omitempty"`
	ReadOnly      bool                 `yaml:"read_only,omitempty"`
	StdinOpen     bool                 `yaml:"stdin_open,omitempty"`
	Tty           bool                 `yaml:"tty,omitempty"`
	User          string               `yaml:"user,omitempty"`
	WorkingDir    string               `yaml:"working_dir,omitempty"`
	Ulimits       yaml.Ulimits         `yaml:"ulimits,omitempty"`
}
type VolumeConfig struct {
	Driver     string            `yaml:"driver,omitempty"`
	DriverOpts map[string]string `yaml:"driver_opts,omitempty"`
	External   yaml.External     `yaml:"external,omitempty"`
}
type Ipam struct {
	Driver string       `yaml:"driver,omitempty"`
	Config []IpamConfig `yaml:"config,omitempty"`
}
type IpamConfig struct {
	Subnet     string            `yaml:"subnet,omitempty"`
	IPRange    string            `yaml:"ip_range,omitempty"`
	Gateway    string            `yaml:"gateway,omitempty"`
	AuxAddress map[string]string `yaml:"aux_addresses,omitempty"`
}
type NetworkConfig struct {
	Driver     string            `yaml:"driver,omitempty"`
	DriverOpts map[string]string `yaml:"driver_opts,omitempty"`
	External   yaml.External     `yaml:"external,omitempty"`
	Ipam       Ipam              `yaml:"ipam,omitempty"`
}
type Config struct {
	Version  string                    `yaml:"version,omitempty"`
	Services RawServiceMap             `yaml:"services,omitempty"`
	Volumes  map[string]*VolumeConfig  `yaml:"volumes,omitempty"`
	Networks map[string]*NetworkConfig `yaml:"networks,omitempty"`
}