本文整理匯總了Golang中github.com/eris-ltd/eris-cli/definitions.Service類的典型用法代碼示例。如果您正苦於以下問題:Golang Service類的具體用法?Golang Service怎麽用?Golang Service使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Service類的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: connectToAService
// links and mounts for service dependencies
func connectToAService(srv *definitions.Service, ops *definitions.Operation, typ, name, internalName string, link, mount bool) {
log.WithFields(log.Fields{
"=>": srv.Name,
"type": typ,
"name": name,
"internal name": internalName,
"link": link,
"volumes from": mount,
}).Debug("Connecting to service")
containerName := util.ContainersName(typ, name, ops.ContainerNumber)
if link {
newLink := containerName + ":" + internalName
srv.Links = append(srv.Links, newLink)
}
if mount {
// Automagically mount VolumesFrom for serviceDeps so they can
// easily pass files back and forth. note that this is opinionated
// and will mount as read-write. we can revisit this if read-only
// mounting required for specific use cases
newVol := containerName + ":rw"
srv.VolumesFrom = append(srv.VolumesFrom, newVol)
}
}
示例2: configureDataContainer
func configureDataContainer(srv *def.Service, ops *def.Operation, mainContOpts *docker.CreateContainerOptions) (docker.CreateContainerOptions, error) {
// by default data containers will rely on the image used by
// the base service. sometimes, tho, especially for testing
// that base image will not be present. in such cases use
// the base eris data container.
if srv.Image == "" {
srv.Image = "eris/data"
}
opts := docker.CreateContainerOptions{
Name: ops.DataContainerName,
Config: &docker.Config{
Image: srv.Image,
User: srv.User,
AttachStdin: false,
AttachStdout: false,
AttachStderr: false,
Tty: false,
OpenStdin: false,
NetworkDisabled: true, // data containers do not need to talk to the outside world.
Entrypoint: []string{},
Cmd: []string{"false"}, // just gracefully exit. data containers just need to "exist" not run.
},
HostConfig: &docker.HostConfig{},
}
if mainContOpts != nil {
mainContOpts.HostConfig.VolumesFrom = append(mainContOpts.HostConfig.VolumesFrom, ops.DataContainerName)
}
return opts, nil
}
示例3: connectToAService
// links and mounts for service dependencies
func connectToAService(srv *definitions.Service, ops *definitions.Operation, typ, name, internalName string, link, mount bool) {
logger.Debugf("Connecting service %s to %s %s (%s) with link (%v) and volumes-from (%v)\n", srv.Name, typ, name, internalName, link, mount)
containerName := util.ContainersName(typ, name, ops.ContainerNumber)
if link {
newLink := containerName + ":" + internalName
srv.Links = append(srv.Links, newLink)
}
if mount {
// Automagically mount VolumesFrom for serviceDeps so they can
// easily pass files back and forth. note that this is opinionated
// and will mount as read-write. we can revisit this if read-only
// mounting required for specific use cases
newVol := containerName + ":rw"
srv.VolumesFrom = append(srv.VolumesFrom, newVol)
}
}
示例4: configureDataContainer
func configureDataContainer(srv *def.Service, ops *def.Operation, mainContOpts *docker.CreateContainerOptions) (docker.CreateContainerOptions, error) {
// by default data containers will rely on the image used by
// the base service. sometimes, tho, especially for testing
// that base image will not be present. in such cases use
// the base eris data container.
if srv.Image == "" {
srv.Image = "quay.io/eris/data"
}
// Manipulate labels locally.
labels := make(map[string]string)
for k, v := range ops.Labels {
labels[k] = v
}
// If connected to a service.
if mainContOpts != nil {
// Set the service container's VolumesFrom pointing to the data container.
mainContOpts.HostConfig.VolumesFrom = append(mainContOpts.HostConfig.VolumesFrom, ops.DataContainerName)
// Operations are inherited from the service container.
labels = util.SetLabel(labels, def.LabelType, def.TypeData)
// Set the data container service label pointing to the service.
labels = util.SetLabel(labels, def.LabelService, mainContOpts.Name)
}
opts := docker.CreateContainerOptions{
Name: ops.DataContainerName,
Config: &docker.Config{
Image: srv.Image,
User: srv.User,
AttachStdin: false,
AttachStdout: false,
AttachStderr: false,
Tty: false,
OpenStdin: false,
Labels: labels,
// Data containers do not need to talk to the outside world.
NetworkDisabled: true,
// Just gracefully exit. Data containers just need to "exist" not run.
Entrypoint: []string{"true"},
Cmd: []string{},
},
HostConfig: &docker.HostConfig{},
}
return opts, nil
}