mirror of
https://github.com/rancher/os.git
synced 2025-09-01 14:48:55 +00:00
Support legacy Docker Compose labels
This commit is contained in:
5
vendor/github.com/docker/libcompose/docker/container.go
generated
vendored
5
vendor/github.com/docker/libcompose/docker/container.go
generated
vendored
@@ -134,6 +134,11 @@ func (c *Container) Recreate(ctx context.Context, imageName string) (*types.Cont
|
||||
}
|
||||
|
||||
hash := container.Config.Labels[labels.HASH.Str()]
|
||||
legacyHash := container.Config.Labels[labels.HASH_LEGACY.Str()]
|
||||
|
||||
if hash == "" && legacyHash != "" {
|
||||
hash = legacyHash
|
||||
}
|
||||
if hash == "" {
|
||||
return nil, fmt.Errorf("Failed to find hash on old container: %s", container.Name)
|
||||
}
|
||||
|
7
vendor/github.com/docker/libcompose/docker/name.go
generated
vendored
7
vendor/github.com/docker/libcompose/docker/name.go
generated
vendored
@@ -63,7 +63,12 @@ func NewNamer(ctx context.Context, client client.APIClient, project, service str
|
||||
|
||||
maxNumber := 0
|
||||
for _, container := range containers {
|
||||
number, err := strconv.Atoi(container.Labels[labels.NUMBER.Str()])
|
||||
numberLabel := container.Labels[labels.NUMBER.Str()]
|
||||
if numberLabel == "" {
|
||||
namer.currentNumber = 1
|
||||
return namer, nil
|
||||
}
|
||||
number, err := strconv.Atoi(numberLabel)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
18
vendor/github.com/docker/libcompose/docker/service.go
generated
vendored
18
vendor/github.com/docker/libcompose/docker/service.go
generated
vendored
@@ -79,15 +79,29 @@ func (s *Service) collectContainers(ctx context.Context) ([]*Container, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
legacyContainers, err := GetContainersByFilter(ctx, client, labels.SERVICE_LEGACY.Eq(s.name), labels.PROJECT_LEGACY.Eq(s.context.Project.Name))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(containers) == 0 && len(legacyContainers) > 0 {
|
||||
containers = legacyContainers
|
||||
}
|
||||
|
||||
result := []*Container{}
|
||||
|
||||
for _, container := range containers {
|
||||
containerNumber, err := strconv.Atoi(container.Labels[labels.NUMBER.Str()])
|
||||
numberLabel := container.Labels[labels.NUMBER.Str()]
|
||||
name := strings.SplitAfter(container.Names[0], "/")
|
||||
if numberLabel == "" {
|
||||
result = append(result, NewContainer(client, name[1], 1, s))
|
||||
return result, nil
|
||||
}
|
||||
containerNumber, err := strconv.Atoi(numberLabel)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// Compose add "/" before name, so Name[1] will store actaul name.
|
||||
name := strings.SplitAfter(container.Names[0], "/")
|
||||
result = append(result, NewContainer(client, name[1], containerNumber, s))
|
||||
}
|
||||
|
||||
|
4
vendor/github.com/docker/libcompose/labels/labels.go
generated
vendored
4
vendor/github.com/docker/libcompose/labels/labels.go
generated
vendored
@@ -18,6 +18,10 @@ const (
|
||||
SERVICE = Label("com.docker.compose.service")
|
||||
HASH = Label("com.docker.compose.config-hash")
|
||||
VERSION = Label("com.docker.compose.version")
|
||||
|
||||
PROJECT_LEGACY = Label("io.docker.compose.project")
|
||||
SERVICE_LEGACY = Label("io.docker.compose.service")
|
||||
HASH_LEGACY = Label("io.docker.compose.config-hash")
|
||||
)
|
||||
|
||||
// EqString returns a label json string representation with the specified value.
|
||||
|
Reference in New Issue
Block a user