繁体   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