Massive architectural rework
This commit massively overhauls the project's structure to simplify development. Most parts are now correctly compartmentalized and dependencies are passed in a sane way rather than global variables galore xd.
This commit is contained in:
29
internal/docker/docker.go
Normal file
29
internal/docker/docker.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package docker
|
||||
|
||||
import (
|
||||
"github.com/docker/docker/client"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type DockerID string
|
||||
|
||||
// structure that holds the docker daemon information
|
||||
type DockerClient struct {
|
||||
client *client.Client
|
||||
logger *zap.SugaredLogger
|
||||
}
|
||||
|
||||
func NewDocker(rawDockerClient *client.Client, logger *zap.SugaredLogger) *DockerClient {
|
||||
if rawDockerClient == nil {
|
||||
var err error
|
||||
rawDockerClient, err = client.NewClientWithOpts(client.FromEnv)
|
||||
if err != nil {
|
||||
logger.Fatalw("Failed to create docker client", zap.Error(err))
|
||||
}
|
||||
}
|
||||
|
||||
return &DockerClient{
|
||||
client: rawDockerClient,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user