在Docker Compose 中執行單一執行指令
為了使用Docker Compose 高效部署Go Web 伺服器,您可能會遇到障礙在部署期間嘗試僅執行一次命令時。這個特定的命令 ./my-project -setup 僅在專案編譯後才需要運行,以將基本資訊新增至資料庫。
Docker Compose 沒有為這種需求提供直接的解決方案,但您可以透過向容器引入入口點腳本來規避它。在此腳本中,您可以執行檢查以驗證資料庫是否已初始化,如果沒有,請繼續執行所需的步驟。
要注意的是,Docker Compose 中容器啟動的順序是不一致。這意味著應用程式容器可能會在資料庫容器之前啟動,這可能導致資料庫不準確。入口點腳本應該考慮這種可能性並進行相應調整。
例如,您可以從官方 WordPress 圖片的方法中汲取靈感。該映像使用入口點腳本嘗試建立與資料庫的連接,並根據連接狀態執行必要的初始化過程:https://github.com/docker-library/wordpress/blob/df190dc9c5752fd09317d836bd2bdcd09ee379a5/apache/docker-14836bd2bdcd09ee379a5/apache/docker-1483. -L171.
此外,您可以透過消除使用「僅資料容器」來安裝磁碟區來簡化Docker Compose 配置。從 Docker 1.9 開始,Docker 支援磁碟區管理,包括命名磁碟區。這允許您排除僅資料容器並相應地修改 Mongo 服務配置:
mongo: image: mongo:latest volumes: - mongodata:/data/db ports: - "28001:27017" command: --smallfiles --rest --auth
此修改將建立或重複使用名為「mongodata」的磁碟區。若要列出或刪除卷,請使用指令 dockervolume ls 和 dockervolume rm
以上是如何在部署期間在 Docker Compose 中執行單一執行命令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!