aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/api/docker.go
diff options
context:
space:
mode:
Diffstat (limited to 'api/docker.go')
-rw-r--r--api/docker.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/api/docker.go b/api/docker.go
index b82b731..4bbb97e 100644
--- a/api/docker.go
+++ b/api/docker.go
@@ -31,6 +31,42 @@ func stopVtt(ctx context.Context) error {
return nil
}
+func startVtt(ctx context.Context) error {
+ apiClient, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
+ if err != nil {
+ Logger.ErrorContext(ctx, "Failed to get docker api client", slog.Any("err", err))
+ return err
+ }
+ defer apiClient.Close()
+
+ Logger.InfoContext(ctx, "Starting foundry container")
+ err = apiClient.ContainerStart(ctx, vttContainerId, container.StartOptions{})
+ if err != nil {
+ Logger.ErrorContext(ctx, "Error occured while starting foundry container", slog.Any("err", err))
+ return err
+ }
+
+ return nil
+}
+
+func restartVtt(ctx context.Context) error {
+ apiClient, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
+ if err != nil {
+ Logger.ErrorContext(ctx, "Failed to get docker api client", slog.Any("err", err))
+ return err
+ }
+ defer apiClient.Close()
+
+ Logger.InfoContext(ctx, "Starting foundry container")
+ err = apiClient.ContainerRestart(ctx, vttContainerId, container.StopOptions{})
+ if err != nil {
+ Logger.ErrorContext(ctx, "Error occured while restart foundry container", slog.Any("err", err))
+ return err
+ }
+
+ return nil
+}
+
// Get readcloser for logs
// If lines is zero, returns all logs.
func vttLogs(ctx context.Context, lines uint) (io.ReadCloser, error) {