Ce face docker wait
docker wait blochează terminalul până când containerul se oprește, apoi afișează codul lui de ieșire: 0 pentru succes, altă valoare pentru eroare (de exemplu 137 când a fost oprit cu SIGKILL, adesea din lipsă de memorie).
Este utilă în scripturi și în CI: pornești un container care rulează teste sau o migrare cu -d, faci alte lucruri, apoi aștepți rezultatul și decizi ce urmează după codul primit. Cu mai multe containere, afișează câte un cod pe linie, în ordinea dată.
Parametri
| Parametru | Descriere |
|---|---|
<container>... |
Unul sau mai multe containere de așteptat. |
Exemple
Exemplul 1: Migrarea bazei de date într-un script de deploy
Scriptul continuă doar dacă migrarea s-a terminat cu codul 0.
docker run -d --name migrare --network magazin magazin-api:1.4 npm run migrate
cod=$(docker wait migrare)
echo "Migrarea s-a terminat cu codul $cod"
[ "$cod" -eq 0 ] || { docker logs migrare; exit 1; }
Ieșire în terminal
Migrarea s-a terminat cu codul 0
Exemplul 2: Codurile de ieșire pentru mai multe containere
Primul container a reușit, al doilea a fost oprit de lipsa memoriei (137 = 128 + 9, adică SIGKILL).
docker wait teste-unitare teste-integrare
Ieșire în terminal
0
137
Greșeli frecvente
- Folosirea
docker waitpe un serviciu care nu se oprește singur (server web): comanda așteaptă la nesfârșit. - Pornirea containerului cu
--rmși apoidocker logsdupădocker wait: containerul și jurnalele lui au fost deja șterse. Șterge-l manual după ce ai citit jurnalele.
Comenzi înrudite
docker create: Creează un container cu toate setările lui, fără să-l pornească; îl pornești mai târziu cu docker start.docker attach: Conectează terminalul tău la intrarea, ieșirea și erorile procesului principal al unui container care rulează.docker pause / docker unpause: Îngheață toate procesele unui container (fără să le oprească) și le reia exact din același punct.