mirror of
https://github.com/yusing/godoxy.git
synced 2026-01-11 22:30:47 +01:00
40 lines
957 B
Go
40 lines
957 B
Go
package docker
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/moby/moby/api/types/container"
|
|
"github.com/moby/moby/client"
|
|
"github.com/yusing/godoxy/internal/types"
|
|
)
|
|
|
|
var listOptions = client.ContainerListOptions{
|
|
// created|restarting|running|removing|paused|exited|dead
|
|
// Filters: filters.NewArgs(
|
|
// filters.Arg("status", "created"),
|
|
// filters.Arg("status", "restarting"),
|
|
// filters.Arg("status", "running"),
|
|
// filters.Arg("status", "paused"),
|
|
// filters.Arg("status", "exited"),
|
|
// ),
|
|
All: true,
|
|
}
|
|
|
|
func ListContainers(ctx context.Context, dockerCfg types.DockerProviderConfig) ([]container.Summary, error) {
|
|
dockerClient, err := NewClient(dockerCfg)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer dockerClient.Close()
|
|
|
|
containers, err := dockerClient.ContainerList(ctx, listOptions)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return containers.Items, nil
|
|
}
|
|
|
|
func IsErrConnectionFailed(err error) bool {
|
|
return client.IsErrConnectionFailed(err)
|
|
}
|