/
docker_kernel.go
83 lines (66 loc) · 2.49 KB
/
docker_kernel.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package service
import (
"errors"
"io"
"os"
"path"
dockertypes "github.com/docker/docker/api/types"
"github.com/vertex-center/vertex/apps/containers/core/port"
"github.com/vertex-center/vertex/apps/containers/core/types"
"github.com/vertex-center/vertex/pkg/log"
"github.com/vertex-center/vlog"
)
type DockerKernelService struct {
dockerAdapter port.DockerAdapter
}
func NewDockerKernelService(dockerAdapter port.DockerAdapter) port.DockerService {
return &DockerKernelService{
dockerAdapter: dockerAdapter,
}
}
func (s DockerKernelService) ListContainers() ([]types.DockerContainer, error) {
return s.dockerAdapter.ListContainers()
}
func (s DockerKernelService) DeleteContainer(id string) error {
return s.dockerAdapter.DeleteContainer(id)
}
func (s DockerKernelService) CreateContainer(options types.CreateContainerOptions) (types.CreateContainerResponse, error) {
return s.dockerAdapter.CreateContainer(options)
}
func (s DockerKernelService) StartContainer(id string) error {
return s.dockerAdapter.StartContainer(id)
}
func (s DockerKernelService) StopContainer(id string) error {
return s.dockerAdapter.StopContainer(id)
}
func (s DockerKernelService) InfoContainer(id string) (types.InfoContainerResponse, error) {
return s.dockerAdapter.InfoContainer(id)
}
func (s DockerKernelService) LogsStdoutContainer(id string) (io.ReadCloser, error) {
return s.dockerAdapter.LogsStdoutContainer(id)
}
func (s DockerKernelService) LogsStderrContainer(id string) (io.ReadCloser, error) {
return s.dockerAdapter.LogsStderrContainer(id)
}
func (s DockerKernelService) WaitContainer(id string, cond types.WaitContainerCondition) error {
return s.dockerAdapter.WaitContainer(id, cond)
}
func (s DockerKernelService) InfoImage(id string) (types.InfoImageResponse, error) {
return s.dockerAdapter.InfoImage(id)
}
func (s DockerKernelService) PullImage(options types.PullImageOptions) (io.ReadCloser, error) {
log.Info("pulling image", vlog.String("image", options.Image))
return s.dockerAdapter.PullImage(options)
}
func (s DockerKernelService) BuildImage(options types.BuildImageOptions) (dockertypes.ImageBuildResponse, error) {
log.Info("building image", vlog.String("dockerfile", options.Dockerfile))
return s.dockerAdapter.BuildImage(options)
}
func (s DockerKernelService) DeleteMounts(uuid string) error {
volumesPath := path.Join("live_docker", "apps", "containers", "volumes", uuid)
err := os.RemoveAll(volumesPath)
if err != nil && !errors.Is(err, os.ErrNotExist) {
return err
}
return nil
}