wait-for-it.sh - 使用 Docker Compose depends_on 的必備 bash script
撰寫 docker-compose.yaml
經常會遇到要使用 depends_on
的情況,確保某些特定的服務可以先啟動,例如 Web Application 經常要 depends_on
資料庫(database)服務。
但是 depends_on
指確保該 container 狀態會進到 running
,而非確保 container 內的服務會完整啟動結束。
However, for startup Compose does not wait until a container is “ready” (whatever that means for your particular application) - only until it’s running.
以 Web Application 與資料庫服務為例,在這種情況下,就會遇到資料庫服務的 container 已經進到 running
,但其實資料庫的程序(process)還沒完全啟動,進而導致 Web Application 服務連不到資料庫而失敗。
遇到這問題,建議可以使用 wait-for-it.sh 來解決!