簡體   English   中英

如何在 Docker 中運行 nodejs 和 reactjs

[英]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 應用程序、數據庫和內存緩存。

將每個容器限制為一個進程是一個很好的經驗法則

Dockerfile 最佳實踐

暫無
暫無

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

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