Docker CMD 與 ENTRYPOINT 說明詳解
寫 Dockerfile 時,經常搞不清楚 CMD
與 ENTRYPOINT
的差異,雖然兩者用途相當雷同,但還是特別查閱了一下 Docker 的官方文件,了解兩者的用途以及差別,並且透過實際的範例驗證後,記錄成本文。
Posted on Dec 28, 2021 in Docker by Amo Chen ‐ 5 min read
寫 Dockerfile 時,經常搞不清楚 CMD
與 ENTRYPOINT
的差異,雖然兩者用途相當雷同,但還是特別查閱了一下 Docker 的官方文件,了解兩者的用途以及差別,並且透過實際的範例驗證後,記錄成本文。
Posted on Dec 28, 2021 in Docker by Amo Chen ‐ 5 min read
Docker 映像檔(image)大小在 production 環境中也是相當重要的一環。
如果 Docker 映像檔太大,不僅佔用傳輸頻寬,也會拉長部署(deployment)的時間,因此如何優化 Docker 映像檔案大小是一門重要課題。
優化 Docker 映像檔大小有若干種方法,其中一種為 multi-stage build, 不過 Docker 官方文件所提供的 multi-stage builds 範例卻無法正常運作,本篇將修正該範例並實際體驗 multi-stage builds 的效果。
Last updated on Dec 30, 2022 in Docker by Amo Chen ‐ 3 min read
環境變數(Environment variable)是開發時常見用來控制程式行為的方法之一。
近年隨著 Docker 被普遍運用在開發環境之中,如何方便地在 Docker 中使用環境變數就變成必學的課題之一。
本篇介紹幾種 Docker 與 Docker compose 中設定環境變數的方法。
Posted on Jun 19, 2020 in Docker by Amo Chen ‐ 2 min read
撰寫 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 來解決!
Posted on Nov 1, 2019 in Docker by Amo Chen ‐ 2 min read