我有一個軟體正在考慮開源。在此之前,我在我使用的盒子(例如 Gunicorn、RabbitMQ、Redis 等)上運行了大部分代碼及其依賴項。這一切都是通過一個簡單的安裝腳本安裝的。
我想轉而使用 Docker 來處理這個問題,這樣我們就可以確保它在所有機器上運行相同。
在以前的專案中,我會為應用程式創建一個 Dockerfile,然后使用 Docker Compose 來編排任何其他依賴項服務,例如 RabbitMQ 或 Redis,但是我正在嘗試從現在開始考慮執行此操作的最佳方法。
擁有一個將所有內容安裝在一個容器中并基于 Ubuntu 之類的東西的 Dockerfile 是否更好?也就是說,它將 RabbitMQ 和應用程式依賴項直接安裝在同一個容器中。因此,當你想要安裝它時,你需要做的就是docker run <image>。
還是堅持使用 Docker Compose 方法來編排事物更好?
uj5u.com熱心網友回復:
Docker compose 是更好的方法。
Docker 容器只能運行一種服務(Gunicor、RabbitMQ 或 Redis)。正如他們在檔案中所述
通常建議您通過為每個容器使用一項服務來分離關注區域。
這對于將使用您的服務 (Gunicorn) 并且可能已經擁有 Redis 或 RabbitMQ 實體的人也很有用。這將使他們能夠重用他們的資源,并且只運行他們需要的專案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/534135.html
