簡體   English   中英

Docker compose-構建順序,應用程序之前的數據庫

[英]Docker compose - build order, database before the app

我正在使用docker compose文件來構建Web應用程序。 在一張圖中,我有Web服務器,PHP和其他所需的擴展名和軟件包。 該Web應用程序的Docker文件繼承了公共基礎映像,並使用自定義命令對其進行了擴展。 在另一個容器中,我有mysql服務器。 現在我面臨的問題是,在最初的構建過程中,我的應用程序實際上需要實時數據庫連接,但始終首先執行Web容器,而數據庫容器仍未啟動,這當然會導致失敗。 我嘗試添加depends_on,但是正如我所見,這僅影響啟動順序,而不影響構建順序。

我聽說過rocker和其他擴展程序可以解決此問題,但是有什么辦法可以在本地進行此操作嗎? 據我研究,我發現沒有可行的選擇,因為人們的要求很高。

我不確定是否適合您,但是您可以構建自定義腳本。

假設您將有兩個docker-compose文件。

  • 一種用於構建您的mysql數據庫
  • 適用於您的Web應用程序的第二個

首先,您可以用兩個mysql鏡像午餐mysql數據庫docker-compose文件

  • 一個人會午餐你的數據庫
  • 第二個將啟動腳本,直到mysql db准備好為止。

在兩個容器完成啟動之后,您可以開始使用webapps啟動docker-compose,並且將確保數據庫已啟動並正在運行

這種方法需要一些自定義腳本來處理,但可能非常有幫助。

在docker文檔之后,depends_on將不等待db准備就緒后再開始Web。 如果您需要等待服務准備就緒,請按照此處的文檔https://docs.docker.com/compose/startup-order/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM