我目前正在尝试在 docker 中运行 React 应用程序。我正在运行npm start
容器内运行的 create-react-app 包中包含的脚本,并且我正在使用绑定安装在主机中工作并反映容器中的更改。可悲的是,即使文件确实发生了变化,react 包附带的重新编译功能在容器内也不起作用。问题是我正在使用 docket 工具箱。你们知道可能是什么问题吗?为什么不重新编译?
我的文件结构如下。
project
| .dockerignore
| .gitignore
| docker-compose.yml
| Dockerfile
| LICENSE
| README.md
|
\---frontend
+---nodemodules\*
| package-lock.json
| package.json
| README.md
|
+---public
| index.html
|
\---src
| index.js
|
\---container
App.jsx
文件
FROM node:8.11.1
COPY . /usr/src/
WORKDIR /usr/src/frontend
ENV PATH /usr/src/frontend/node_modules/.bin:$PATH
RUN npm install -g create-react-app
RUN npm install
EXPOSE 3000
CMD [ "npm", "start" ]
docker-compose.yml
version: "3.5"
services:
react:
build:
context: .
dockerfile: Dockerfile
volumes:
- "./frontend:/usr/src/frontend"
- '/usr/src/frontend/node_modules'
ports:
- "3000:3000"
environment:
- NODE_ENV=development