在 docker 上 React 热重载-compose 在 Windows 上失败
Hot reload on React with docker-compose failing on Windows
我正在尝试让 React 在保存文件时更改网站内容。
我正在使用没有安全写入的 VS 代码。我正在通过 Docker 桌面在 Windows 上使用 docker-compose。
Docker文件:
FROM node:17-alpine
WORKDIR /front
ARG FRONT_CMD
ARG API_HOSTNAME
ENV REACT_APP_API_HOSTNAME=$API_HOSTNAME
COPY . .
RUN npm i @emotion/react @emotion/styled
CMD $FRONT_CMD
docker-compose.yml的相关部分:
frontend:
volumes:
- ./frontend/src:/front/src
- /front/node_modules
build:
context: ./frontend
dockerfile: Dockerfile
args:
- FRONT_CMD=${FRONT_CMD}
- API_HOSTNAME=${API_HOSTNAME}
env_file:
- .env.dev
networks:
- internal
environment:
- CHOKIDAR_USEPOLLING=true
- FAST_REFRESH=false
- NODE_ENV=development
一切都运行落后于traefik。 CHOKIDAR_USEPOLLING 和 FAST_REFRESH 似乎没有区别,我从“docker-compose --env-file ..env.dev up”开始 - 在文件 FRONT_CMD="npm start" 表现得很好。 Env.dev 应该清楚地指示 React 的开发构建(并且在不添加的情况下工作相同),但我添加了 NODE_ENV 只是为了安全起见。我尝试将它们全部添加到构建环境中,只是非常确定,但没有任何变化。 React 文件位于 'frontend' 文件夹中,与 docker-compose.yml.
位于同一位置
每次 React 都说它编译成功并警告我这是一个开发版本。
我唯一怀疑的是,在本地使用 Windows 更新文件时存在一些问题,而 docker 使用 Linux,但我不知道从那里去哪里,即使原来如此。
我发现的最短方法是从另一端开始,即将编辑器附加到容器,而不是根据系统文件的更改更新容器。我按照这里的指南操作:https://code.visualstudio.com/docs/remote/attach-container
我正在尝试让 React 在保存文件时更改网站内容。
我正在使用没有安全写入的 VS 代码。我正在通过 Docker 桌面在 Windows 上使用 docker-compose。
Docker文件:
FROM node:17-alpine
WORKDIR /front
ARG FRONT_CMD
ARG API_HOSTNAME
ENV REACT_APP_API_HOSTNAME=$API_HOSTNAME
COPY . .
RUN npm i @emotion/react @emotion/styled
CMD $FRONT_CMD
docker-compose.yml的相关部分:
frontend:
volumes:
- ./frontend/src:/front/src
- /front/node_modules
build:
context: ./frontend
dockerfile: Dockerfile
args:
- FRONT_CMD=${FRONT_CMD}
- API_HOSTNAME=${API_HOSTNAME}
env_file:
- .env.dev
networks:
- internal
environment:
- CHOKIDAR_USEPOLLING=true
- FAST_REFRESH=false
- NODE_ENV=development
一切都运行落后于traefik。 CHOKIDAR_USEPOLLING 和 FAST_REFRESH 似乎没有区别,我从“docker-compose --env-file ..env.dev up”开始 - 在文件 FRONT_CMD="npm start" 表现得很好。 Env.dev 应该清楚地指示 React 的开发构建(并且在不添加的情况下工作相同),但我添加了 NODE_ENV 只是为了安全起见。我尝试将它们全部添加到构建环境中,只是非常确定,但没有任何变化。 React 文件位于 'frontend' 文件夹中,与 docker-compose.yml.
位于同一位置每次 React 都说它编译成功并警告我这是一个开发版本。
我唯一怀疑的是,在本地使用 Windows 更新文件时存在一些问题,而 docker 使用 Linux,但我不知道从那里去哪里,即使原来如此。
我发现的最短方法是从另一端开始,即将编辑器附加到容器,而不是根据系统文件的更改更新容器。我按照这里的指南操作:https://code.visualstudio.com/docs/remote/attach-container