gpt4 book ai didi

reactjs - Docker 与子目录组合并实时重新加载

转载 作者:行者123 更新时间:2023-12-03 14:04:28 26 4
gpt4 key购买 nike

我使用 create-react-app 创建了一个应用程序并设置 docker compose 以设置容器并启动应用程序。当应用程序位于根目录时,应用程序启动并且实时重新加载工作。但是,当我将应用程序移动到子目录时,我可以启动应用程序,但实时重新加载不起作用。

这是工作设置:

Dockerfile

FROM node:7.7.2

ADD . /code

WORKDIR /code

RUN npm install

EXPOSE 3000

CMD npm start

docker-compose.yml

version: "2"

services:
client:
build: .
ports:
- "3000:3000"
volumes:
- .:/code

目录结构

app
- node_modules
- docker-compose
- Dockerfile
- package.json
- src
- public

这是我想要的结构:

app
- server
- client
/ node_modules
/ Dockerfile
/ package.json
/ src
/ public
- docker-compose.yml

我已经尝试了我能想到的所有变体,但实时重新加载不起作用。

我要做的第一件事是更改构建位置:

version: "2"

services:
client:
build: ./client
ports:
- "3000:3000"
volumes:
- .:/code

然后我在尝试运行docker-compose up时遇到错误:

npm ERR! enoent ENOENT: no such file or directory, open '/code/package.json'

因此,我将音量更改为 - .:/client/code 并重建并运行命令,应用程序启动,但没有实时重新加载。

当应用程序位于子目录中时是否可以执行此操作?

最佳答案

当您移动本地目录时,容器内部的路径没有任何区别。所以你只需要更改本地引用即可。

卷挂载应来自./client

version: "2"

services:
client:
build: ./client
ports:
- "3000:3000"
volumes:
- ./client:/code

关于reactjs - Docker 与子目录组合并实时重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42796714/

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