mirror of
https://github.com/sablierapp/sablier.git
synced 2025-12-27 15:41:41 +01:00
42 lines
911 B
Go
42 lines
911 B
Go
package docker
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"github.com/docker/docker/client"
|
|
"github.com/rs/zerolog"
|
|
"github.com/sablierapp/sablier/pkg/sablier"
|
|
)
|
|
|
|
var _ sablier.Provider = (*DockerProvider)(nil)
|
|
|
|
type DockerProvider struct {
|
|
Client *client.Client
|
|
|
|
UseCheckpoint bool
|
|
UsePause bool
|
|
|
|
log zerolog.Logger
|
|
}
|
|
|
|
func NewDockerProvider(cli *client.Client, logger zerolog.Logger) (*DockerProvider, error) {
|
|
logger = logger.With().Str("provider", "docker").
|
|
Logger()
|
|
serverVersion, err := cli.ServerVersion(context.Background())
|
|
if err != nil {
|
|
return nil, fmt.Errorf("cannot connect to docker host: %v", err)
|
|
}
|
|
|
|
logger.Debug().
|
|
Str("server-version", serverVersion.Version).
|
|
Str("api-version", serverVersion.APIVersion).
|
|
Msg("connection established with docker")
|
|
|
|
return &DockerProvider{
|
|
Client: cli,
|
|
UseCheckpoint: false,
|
|
UsePause: false,
|
|
log: logger,
|
|
}, nil
|
|
}
|