Reintroducerea controalelor de sănătate cu depends_on în docker compose este uimitoare. Serios, m-am săturat să scriu verificări de sănătate în fiecare container din aval, în special lucruri precum un container de inițializare a bazei de date.
Acestea fiind spuse, se pare că de îndată ce activez o verificare de sănătate/depinde, toate ieșirile din acele containere sunt stocate în tampon până când verificarea de sănătate reușește. Mai rău - dacă containerul nu pornește dintr-un motiv oarecare, ieșirea este înghițită cu totul și trebuie să te uiți cu jurnalele docker
pentru a obține rezultatul.
Deci, dacă am un fișier de scriere docker, ceva de genul:
mysql:
imagine: mysql:8.0
...
control medical:
test: [ "CMD", "mysql", "-u", "nume utilizator", "--parola=parolă", "-e", "afișează bazele de date;" ]
interval: 10s
timeout: 2s
reîncercări: 8640
start_period: 20s
...
verificare-sănătate:
imagine: centos:8
depinde de:
mysql:
stare: service_sănătos
comandă: [ "-c", "echo \"mysql up\"" ]
punct de intrare: „bash”
Există o modalitate de a obține ieșirea containerului mysql și health-check-check pentru a compune stdout
- a) înainte ca controalele de sănătate să fie finalizate (adică fără tampon)
- b) indiferent de succesul/eșecul controlului de sănătate