【发布时间】:2021-01-22 16:16:53
【问题描述】:
我正在尝试对通过 npx create-react-app project-name 创建的基本 CRA 模板进行 dockerize,其中 Dockerfile 看起来像:
FROM node:latest
WORKDIR /usr/src/client
COPY ./ ./
RUN npm install
EXPOSE 3000
CMD ["npm", "start"]
我通过运行docker build -t containername . 构建了映像
然后用docker run -it -p 3000:3000 containername运行它
一切正常,容器运行成功,我可以在浏览器上看到网页正在运行。
这里的问题是 webpack 热重载不起作用,导致应用程序在更改时无法重新编译。
here 和 here 已经提出了同样的问题,但遗憾的是结果不成功。 Windows 用户似乎出现了问题,但就我而言,我使用的是 Mac。
我已经试过了:
- 使用
CHOKIDAR_USEPOLLING=true react-scripts start更新npm start脚本 - 按照here 的说明添加
EXPOSE 35729
任何建议都非常感谢,提前谢谢!
【问题讨论】:
-
应该可以安装 Node 并将其用作具有热重载和其他细节的本地开发环境;你不需要像 Docker 这样的隔离工具。
-
@DavidMaze 你能解释一下你的意思吗?为什么会这样?我的想法是让所有东西都可以通过
AWS ECS进行部署 -
您可以使用本地Node环境进行开发,将您的应用打包到Docker中,然后使用ECS进行部署。这应该可以使用相同的代码库,在您开发应用程序时使用
npm run dev之类的东西,并且仅在您需要运行集成测试或部署它时才引入 Docker。