mirror of
https://github.com/vee1e/kubearmor-client.git
synced 2026-09-02 02:38:10 +00:00
38 lines
774 B
Go
38 lines
774 B
Go
package docker
|
|
|
|
import (
|
|
"context"
|
|
"strings"
|
|
|
|
"github.com/kubearmor/kubearmor-client/recommend/common"
|
|
"github.com/moby/moby/client"
|
|
)
|
|
|
|
type Client struct {
|
|
*client.Client
|
|
}
|
|
|
|
func ConnectDockerClient() (*Client, error) {
|
|
cli, err := client.New(client.FromEnv)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &Client{cli}, nil
|
|
}
|
|
|
|
func (c *Client) ListObjects(_ common.Options) ([]common.Object, error) {
|
|
var result []common.Object
|
|
|
|
resp, err := c.Client.ContainerList(context.Background(), client.ContainerListOptions{})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
for _, ctr := range resp.Items {
|
|
result = append(result, common.Object{
|
|
Name: strings.TrimPrefix(ctr.Names[0], "/"),
|
|
Images: []string{ctr.Image},
|
|
Labels: ctr.Labels,
|
|
})
|
|
}
|
|
return result, nil
|
|
}
|