gpt4 book ai didi

reactjs - 当我们使用react/next时,为什么需要在docker-compose中添加volume选项?

转载 作者:行者123 更新时间:2023-12-02 02:05:42 26 4
gpt4 key购买 nike

我有一个问题,当我们使用 React/Next.js 时,为什么需要在 docker-compose 中使用 VOLUME 选项?

如果我理解的话,我们使用VOLUME来“保存数据”,例如当我们使用数据库时。

但是使用 React/Next.js 我们只是用来传递 node_modulesapp 路径,对我来说这没有任何意义...

如果我这样写:

version: '3'
services:
nextjs-ui:
build:
context: ./
ports:
- "3000:3000"
container_name: nextjs-ui
volumes:
- ./:/usr/src/app/
- /usr/src/app/node_modules

它有效..

如果我这样写:

version: '3'
services:
nextjs-ui:
build:
context: ./
ports:
- "3000:3000"
container_name: nextjs-ui

它的工作方式相同..

为什么我们需要保存node_modulesapp path

我的 DOCKERFILE:

FROM node:12-alpine

WORKDIR /app

COPY package*.json ./

RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001


COPY . .

EXPOSE 9000

RUN npm run build

CMD ["npm", "start"]

最佳答案

根据您的 Dockerfile,它已经复制您的源代码并执行 npm run build。最后运行 npm start 来启动开发服务器(不建议在生产环境中这样做)。

通过安装 src/appsrc/node_modules 目录,您可以在更改主机中的源代码时重新加载应用程序。

总之,如果您没有挂载源代码,则必须重建 docker 镜像并运行它,以便您的更改在应用程序中可见。如果您安装了源代码和node_modules,则可以利用npm start的实时重新加载功能并在主机上进行开发。

关于reactjs - 当我们使用react/next时,为什么需要在docker-compose中添加volume选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68491545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com