fra*_*ica 2 node.js docker reactjs
我有这样的文件夹结构: root/server root/frontend root/start.sh
其中 start.sh 是这样的:
#!/bin/sh
cd server
npm run build;
cd ../client;
npm run build;
mv -R build ../server/client;
cd ../server
npm run start;
Run Code Online (Sandbox Code Playgroud)
所以我构建了服务器,然后是客户端,我将客户端构建的文件移到我的服务器应用程序中,然后运行该应用程序...有没有办法使用 docker 映像执行类似的操作?
是的,您可以使用 .sh 脚本执行的大部分操作都可以通过构建 docker 映像来完成。然而,docker镜像通常遵循单一责任原则,所以我不会将FE和BE耦合在一个镜像中(如果它们是两个不同的应用程序),而是我会做2个不同的,然后使用docker compose,你将能够管理您的多容器应用程序
让我们看一个非常简单的例子
后端:(服务器目录中的 Dockerfile)
FROM node:xxx (use your development version)
WORKDIR /server
COPY . /server/
RUN npm run build
EXPOSE 3000
CMD npm start
Run Code Online (Sandbox Code Playgroud)
前端:(客户端目录中的 Dockerfile)
FROM node:xxx (use your development version)
WORKDIR /client
COPY . /client/
RUN npm run build
EXPOSE 80
CMD npm start
Run Code Online (Sandbox Code Playgroud)
docker compose(在服务器和客户端的父目录中
version: 3
services:
server:
build: ./server
container_name: server
ports:
- 3000:3000
client:
build: ./client
container_name: client
ports:
-80:80
Run Code Online (Sandbox Code Playgroud)
然后使用 docker-compose up --build 您可以随时构建和运行容器,请参阅其他命令的文档(stop、kill、remove ecc)
注意:我都是“手工”编写的,可能存在一些拼写错误或语法错误。抱歉,我会解决的!
| 归档时间: |
|
| 查看次数: |
4667 次 |
| 最近记录: |