Files
tinyauth/internal/docker/docker.go
Stavros 6602e8140b wip
2025-01-29 22:06:52 +02:00

52 lines
967 B
Go

package docker
import (
"context"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/client"
)
func NewDocker() *Docker {
return &Docker{}
}
type Docker struct {
Client *client.Client
Context context.Context
}
func (docker *Docker) Init() error {
apiClient, err := client.NewClientWithOpts(client.FromEnv)
if err != nil {
return err
}
docker.Context = context.Background()
docker.Client = apiClient
return nil
}
func (docker *Docker) GetContainers() ([]types.Container, error) {
containers, err := docker.Client.ContainerList(docker.Context, container.ListOptions{})
if err != nil {
return nil, err
}
return containers, nil
}
func (docker *Docker) InspectContainer(containerId string) (types.ContainerJSON, error) {
inspect, err := docker.Client.ContainerInspect(docker.Context, containerId)
if err != nil {
return types.ContainerJSON{}, err
}
return inspect, nil
}