Engineering · 3 min read
Docker Entrypoint:開店前的檢查清單
容器的 entrypoint 腳本先啟動 socat、確認存活,再用 exec 把 PID 1 交給 Chrome。沒有 exec,Chrome 永遠收不到 SIGTERM。
開店檢查清單
容器就像一間店。entrypoint 腳本是 Kubernetes 啟動時跑的開店檢查清單。
PID 1 = 店長徽章
每個容器有一個主程序(PID 1)。Kubernetes 送 SIGTERM(「請關店」)只給 PID 1。
沒有 exec,Chrome 永遠聽不到「請關店」。Kubernetes 等 30 秒,直接殺掉所有程序。
參數從哪來?
Readiness probe 每 15 秒跑 wget http://127.0.0.1:9222/json/version。這個請求經過 socat。socat 死了,probe 就失敗,Kubernetes 把 Pod 從 DNS 移除。
「exec 不是執行一個程式。它是把自己變成那個程式。」
參考來源:
Related: 見 port contract 與設定鏈(這些參數的來源),或回到系列總覽。