42 lines
1.1 KiB
Go
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
|
|
}
|