Help us shape the future of Go! Take the 2026 Go Developer Survey

exited

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 16, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package exited diagnostique un conteneur arrêté en erreur à partir de son état et de la fin de son journal, sans accès au démon (feature 004) : motif reconnu dans le journal, puis état du conteneur, puis signification du code de sortie.

Index

Constants

View Source
const (
	SourceState   = "state"   // fait enregistré par Docker ou le noyau (OOM, erreur de démarrage)
	SourceLog     = "log"     // motif reconnu dans la fin du journal
	SourceCode    = "code"    // signification du code de sortie
	SourceUnknown = "unknown" // aucune cause précise : TELEMACH ne devine pas (FR-005)
)

Sources d'une cause, de la plus sûre à la plus générale.

View Source
const LogWindow = 10

LogWindow est le nombre de dernières lignes du journal où un motif est cherché : une ligne plus ancienne a peu de chances d'expliquer l'arrêt (LL-010).

View Source
const MaxInspect = 12

MaxInspect est le nombre de candidats inspectés en un appel : de 12 à 25 ms par conteneur selon la charge (research R4, T031) ; 12 couvrent l'analyse et les 10 autres listés.

Variables

View Source
var (
	// ErrRunning : le conteneur désigné est en cours d'exécution.
	ErrRunning = errors.New("conteneur en cours d'exécution")
	// ErrNotFailed : le conteneur désigné s'est arrêté avec le code 0.
	ErrNotFailed = errors.New("conteneur arrêté sans erreur")
)

Functions

func Age

func Age(d time.Duration) string

Age exprime une ancienneté : « à l'instant », « il y a 2 min »…

func Bytes

func Bytes(n int64) string

Bytes exprime une taille mémoire : « 8 Mo », « 1,5 Go ».

func Duration

func Duration(d time.Duration) string

Duration exprime une durée courte en français : « moins d'une seconde », « 3 s », « 2 min », « 4 h », « 2 j ».

func Find

func Find(r Lister, name string) (dockerread.Container, error)

Find renvoie le conteneur désigné par son nom ou un préfixe de son identifiant.

func ParseSince

func ParseSince(s string) (string, error)

ParseSince valide l'heure de début relevée par le shell ($EPOCHREALTIME), avec un point ou une virgule (bash en locale française), et la renvoie au format de « docker events » : décimales tronquées à la nanoseconde (zsh en donne 10).

func Select

func Select(r Lister) ([]dockerread.Container, error)

Select renvoie les conteneurs en erreur, du plus récemment arrêté au plus ancien : arrêtés ou en boucle de redémarrage avec un code ≠ 0, et créés dont le démarrage a échoué.

Types

type Diagnosis

type Diagnosis struct {
	Entry    *catalog.Entry
	Source   string
	Captures map[string]string
}

Diagnosis est la cause retenue et les valeurs pour les gabarits du catalogue.

func Diagnose

func Diagnose(in Input, cat *catalog.Catalog, now time.Time) Diagnosis

Diagnose cherche la cause de l'arrêt (research R7), dans cet ordre : manque de mémoire enregistré par le noyau ; motif sur l'erreur de démarrage enregistrée par Docker ; motif sur les dernières lignes du journal, de la plus récente à la plus ancienne ; erreur de démarrage sans motif ; code de sortie ; sinon cause inconnue.

type Input

type Input struct {
	Container dockerread.Container
	Log       dockerread.LogExcerpt
}

Input est ce qui est connu du conteneur : son état et la fin de son journal.

type Launch

type Launch struct {
	Image      string
	Name       string // valeur de --name, si donnée
	AutoRemove bool   // --rm : le conteneur est supprimé à l'arrêt
}

Launch est un « docker run » lancé en arrière-plan, tel que tapé (research R5).

func ParseLaunch

func ParseLaunch(args []string) (Launch, bool)

ParseLaunch reconnaît un « docker run » (ou « container run ») avec -d/--detach placé avant l'image ; toute autre ligne n'entraîne aucune lecture du démon.

type Lister

type Lister interface {
	ListCandidates() ([]dockerread.Candidate, error)
	Inspect(ids ...string) ([]dockerread.Container, error)
}

Lister est la partie de dockerread.Runner utilisée pour choisir les conteneurs.

type NotFoundError

type NotFoundError struct {
	Name        string
	Suggestions []string
}

NotFoundError : aucun conteneur ne porte ce nom ; Suggestions propose des noms proches.

func (*NotFoundError) Error

func (e *NotFoundError) Error() string

type WatchResult

type WatchResult struct {
	Name    string
	Failed  bool          // arrêté avec un code ≠ 0
	Code    int           // code de sortie (si Failed)
	After   time.Duration // délai entre la création et l'arrêt
	Removed bool          // supprimé par --rm : son journal est perdu
}

WatchResult est l'issue d'un lancement en arrière-plan.

func Match

func Match(evs []dockerread.Event, l Launch) (WatchResult, bool)

Match retrouve le conteneur lancé : premier « create » de cette image (et de ce nom, si --name a été donné), puis son « die ». Sans « die », il tourne toujours.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL