[英]Docker/Reactjs/Nodejs - How to install dependencies and run application after docker-compose up
[英]How to run nodejs and reactjs in Docker
我有一個 nodejs 應用程序來運行后端和另一個 reactjs 應用程序來運行一個網站的前端,然后放入 docker 鏡像。 但我不知道如何處理Dockerfile
CMD
命令。 Docker 有什么命令可以解決這個問題嗎?
我以為我可以使用docker-compose
來構建 2 個單獨的圖像,但它似乎被浪費了,因為必須安裝 2 次node
圖像。
有沒有人有解決方案?
是否將后端和前端放在同一個容器中是一種設計選擇(請記住,docker 容器旨在從主機共享大量資源)。 您可以使用 shell 腳本並在 Dockerfile 中使用CMD
運行該 shell 腳本。
經驗法則,每個容器一個進程。
我以為我可以使用 docker-compose 來構建 2 個單獨的圖像,但它似乎被浪費了,因為必須安裝 2 次節點圖像。
首先,管理 2 個單獨的 docker 鏡像很好,但在容器中運行兩個進程根本不好。
第二件事,您不需要構建 2 個單獨的圖像,如果您可以從相同的代碼運行兩個進程,那么您可以從單個 docker-compose 運行兩個應用程序。
version: '3.7'
services:
react-app:
image: myapp:latest
command: node server.js
ports:
- 3000:3000
node-app:
image: myapp:latest
ports:
- 3001:3001
command: react-scripts start"
每個容器應該只有一個關注點。 將應用程序解耦到多個容器中,可以更輕松地進行水平擴展和重用容器。 例如,Web 應用程序堆棧可能由三個獨立的容器組成,每個容器都有自己獨特的映像,以分離的方式管理 Web 應用程序、數據庫和內存緩存。
將每個容器限制為一個進程是一個很好的經驗法則
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.