![](/img/trans.png)
[英]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.