Files

42 lines
1.1 KiB
Go

package docker
import (
"context"
"encoding/json"
"fmt"
)
// InspectJSON — inspect kontainer sebagai JSON rapi (tab Konfigurasi).
func (c *Client) InspectJSON(ctx context.Context, id string) ([]byte, error) {
in, err := c.cli.ContainerInspect(ctx, id)
if err != nil {
return nil, fmt.Errorf("docker: inspect: %w", err)
}
b, err := json.MarshalIndent(in, "", " ")
if err != nil {
return nil, fmt.Errorf("docker: marshal inspect: %w", err)
}
return b, nil
}
// InspectEnv — variabel environment kontainer (tab Env).
func (c *Client) InspectEnv(ctx context.Context, id string) ([]string, error) {
in, err := c.cli.ContainerInspect(ctx, id)
if err != nil {
return nil, fmt.Errorf("docker: inspect env: %w", err)
}
if in.Config == nil {
return nil, nil
}
return in.Config.Env, nil
}
// TopProcesses — daftar proses di dalam kontainer (`docker top`).
func (c *Client) TopProcesses(ctx context.Context, id string) ([]string, [][]string, error) {
resp, err := c.cli.ContainerTop(ctx, id, nil)
if err != nil {
return nil, nil, fmt.Errorf("docker: top: %w", err)
}
return resp.Titles, resp.Processes, nil
}