[英]Docker compose - build order, database before the app
我正在使用docker compose文件來構建Web應用程序。 在一張圖中,我有Web服務器,PHP和其他所需的擴展名和軟件包。 該Web應用程序的Docker文件繼承了公共基礎映像,並使用自定義命令對其進行了擴展。 在另一個容器中,我有mysql服務器。 現在我面臨的問題是,在最初的構建過程中,我的應用程序實際上需要實時數據庫連接,但始終首先執行Web容器,而數據庫容器仍未啟動,這當然會導致失敗。 我嘗試添加depends_on,但是正如我所見,這僅影響啟動順序,而不影響構建順序。
我聽說過rocker和其他擴展程序可以解決此問題,但是有什么辦法可以在本地進行此操作嗎? 據我研究,我發現沒有可行的選擇,因為人們的要求很高。
我不確定是否適合您,但是您可以構建自定義腳本。
假設您將有兩個docker-compose文件。
首先,您可以用兩個mysql鏡像午餐mysql數據庫docker-compose文件
在兩個容器完成啟動之后,您可以開始使用webapps啟動docker-compose,並且將確保數據庫已啟動並正在運行 。
這種方法需要一些自定義腳本來處理,但可能非常有幫助。
在docker文檔之后,depends_on將不等待db准備就緒后再開始Web。 如果您需要等待服務准備就緒,請按照此處的文檔https://docs.docker.com/compose/startup-order/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.