mirror of
https://github.com/portainer/portainer.git
synced 2025-07-23 15:29:42 +02:00
fix(snapshot): prevent snapshot containers from fast failing in Swarm mode (#8308)
This commit is contained in:
parent
0befdacc0e
commit
cef9255161
1 changed files with 21 additions and 14 deletions
|
@ -167,22 +167,29 @@ func snapshotContainers(snapshot *portainer.DockerSnapshot, cli *client.Client)
|
||||||
// snapshot GPUs
|
// snapshot GPUs
|
||||||
response, err := cli.ContainerInspect(context.Background(), container.ID)
|
response, err := cli.ContainerInspect(context.Background(), container.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
// Inspect a container will fail when the container runs on a different
|
||||||
}
|
// Swarm node, so it is better to log the error instead of return error
|
||||||
|
// when the Swarm mode is enabled
|
||||||
var gpuOptions *_container.DeviceRequest = nil
|
if !snapshot.Swarm {
|
||||||
for _, deviceRequest := range response.HostConfig.Resources.DeviceRequests {
|
return err
|
||||||
if deviceRequest.Driver == "nvidia" || deviceRequest.Capabilities[0][0] == "gpu" {
|
} else {
|
||||||
gpuOptions = &deviceRequest
|
log.Info().Str("container", container.ID).Err(err).Msg("unable to inspect container in other Swarm nodes")
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
|
var gpuOptions *_container.DeviceRequest = nil
|
||||||
if gpuOptions != nil {
|
for _, deviceRequest := range response.HostConfig.Resources.DeviceRequests {
|
||||||
if gpuOptions.Count == -1 {
|
if deviceRequest.Driver == "nvidia" || deviceRequest.Capabilities[0][0] == "gpu" {
|
||||||
gpuUseAll = true
|
gpuOptions = &deviceRequest
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for _, id := range gpuOptions.DeviceIDs {
|
|
||||||
gpuUseSet[id] = struct{}{}
|
if gpuOptions != nil {
|
||||||
|
if gpuOptions.Count == -1 {
|
||||||
|
gpuUseAll = true
|
||||||
|
}
|
||||||
|
for _, id := range gpuOptions.DeviceIDs {
|
||||||
|
gpuUseSet[id] = struct{}{}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue