Documentation
¶
Overview ¶
Package dockerread interroge le démon Docker par la CLI docker de l'apprenant, en lecture seule et par une liste fermée de sous-commandes (ps, inspect, logs, events) : c'est le seul paquet du plugin qui exécute docker (feature 004, FR-010).
Index ¶
Constants ¶
const ( MaxStopped = 20 // conteneurs arrêtés ou en boucle de redémarrage MaxCreated = 10 // conteneurs créés sans avoir démarré (démarrage échoué possible) )
Bornes de « docker ps » : le démon met ~12 ms par conteneur renvoyé (mesuré avec 215 conteneurs : 3 s sans borne), d'où une liste limitée aux plus récents (SC-004).
const DefaultTimeout = 10 * time.Second
DefaultTimeout est le délai maximal d'une lecture : de quoi absorber un démon chargé, sans jamais laisser la commande bloquée (5 s étaient dépassés juste après la création de 200 conteneurs, T031).
Variables ¶
var ( // ErrNotAllowed signale une sous-commande hors de la liste fermée : rien n'est exécuté. ErrNotAllowed = errors.New("lecture du démon non autorisée") // ErrTimeout signale une lecture interrompue après le délai maximal. ErrTimeout = errors.New("le démon Docker ne répond pas dans le délai") )
Functions ¶
This section is empty.
Types ¶
type CLIError ¶
CLIError est un échec de la CLI docker (démon injoignable, permission refusée…), avec sa sortie d'erreur nettoyée et masquée.
type Candidate ¶
Candidate est une ligne de « docker ps » : un conteneur arrêté, en boucle de redémarrage ou créé sans avoir démarré. Le code n'est connu sans inspection que pour les deux premiers.
type Container ¶
type Container struct {
ID, Name, Image, Command string
ExitCode int
Created time.Time
StartedAt, FinishedAt time.Time
OOMKilled bool
Error string
Status string
Restarting bool
RestartCount int
RestartPolicy string
MemoryLimit int64
LogDriver string
EnvNames EnvNames
ComposeProject string
ComposeService string
}
Container est l'état d'un conteneur, décodé de « docker inspect » (data-model.md). Les chaînes sont nettoyées et masquées ; les variables d'environnement réduites à leurs noms.
func DecodeInspect ¶
DecodeInspect décode une sortie JSON de « docker inspect » (variables réduites aux noms).
type EnvNames ¶
type EnvNames []string
EnvNames sont les noms des variables d'environnement d'un conteneur. Le décodage ne garde que la partie avant « = » : aucune valeur n'est conservée (FR-009).
func (*EnvNames) UnmarshalJSON ¶
UnmarshalJSON décode ["NOM=valeur", …] en ne gardant que les noms.
type Event ¶
type Event struct {
Action, ID, Name, Image string
ExitCode int // -1 sans code (événement autre que « die »)
TimeNano int64
}
Event est un événement de conteneur (« docker events »).
func DecodeEvent ¶
DecodeEvent décode une ligne JSON de « docker events ».
type LogExcerpt ¶
type LogExcerpt struct {
Lines []string
Reason string // message de la CLI (masqué) quand le journal est illisible
}
LogExcerpt est la fin du journal d'un conteneur, nettoyée et masquée ligne à ligne.
type Runner ¶
type Runner struct {
Bin string // « docker » par défaut, cherché dans le PATH
Global []string
Timeout time.Duration
}
Runner exécute les lectures avec la CLI docker de l'apprenant : même contexte, même hôte, mêmes certificats (Global : options globales reçues avant « telemach »).
func (Runner) Events ¶
Events lit les événements de création et d'arrêt de conteneurs entre since et until (secondes depuis l'époque, décimales permises) ; « --until » rend la main aussitôt.
func (Runner) Inspect ¶
Inspect décode l'état des conteneurs désignés (identifiants, préfixes ou noms).
func (Runner) ListCandidates ¶
ListCandidates liste les conteneurs arrêtés ou en boucle de redémarrage, puis ceux créés sans avoir démarré, chacun du plus récemment créé au plus ancien, sans doublon.
func (Runner) ListStopped ¶
ListStopped liste seulement les conteneurs arrêtés ou en boucle de redémarrage, les plus récents d'abord (utilisé aussi par la complétion de « docker telemach ps <Tab> »).