如何使用docker容器在Windows上使用docker开发Reactjs?
到目前为止,我已经能够运行我的应用程序,但livereload不起作用.
应用/结构
Dockerfile
FROM node:5.11.0-slim
# Prepare app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app/
# Install dependencies
COPY package.json /usr/src/app/
RUN npm install --silent
ADD . /usr/src/app/
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
泊坞窗,compose.yml:
version: "2"
services:
frontend:
container_name: "boilerplate"
build: .
environment:
env_file: .env
NODE_ENV: development
ports:
- '3000:3000'
volumes:
- .:/usr/src/app
Run Code Online (Sandbox Code Playgroud)
Jor*_*nev 11
这是Windows主机上Docker的已知限制.以下是Docker的文档中有关该问题的内容:
共享驱动器上的inotify不起作用
目前,inotify不适用于Docker for Windows.例如,当应用程序需要跨安装的驱动器读取/写入容器时,这将变得明显.我们建议您使用框架或编程语言的轮询功能,而不是依赖于文件系统inotify.
- nodemon和Node.js的解决方法 - 如果您将nodemon与Node.js一起使用,请尝试此处描述的回退轮询模式:nodemon不重新启动节点应用程序
- GitHub上的Docker for Windows问题 - 请参阅问题共享驱动器上的Inotify不起作用
但是,解决方法是使用轮询机制:
就你的情况而言,我已经在Docker容器中启动了react-create-app,并且livereload功能非常完美.问题是通过创建.env配置文件来启用chokidar轮询.
这是我的配置(灵感来自@haluvibe):
Dockerfile
FROM node:6.9.4
# Prepare app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app/
# Install dependencies
COPY package.json /usr/src/app/
RUN npm install --silent
ADD . /usr/src/app/
EXPOSE 3000
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
泊坞窗,compose.yml
version: "2"
services:
frontend:
container_name: "boilerplate"
build: .
environment:
env_file: .env
NODE_ENV: development
ports:
- '3000:3000'
volumes:
- .:/usr/src/app
Run Code Online (Sandbox Code Playgroud)
.ENV
CHOKIDAR_USEPOLLING=true
Run Code Online (Sandbox Code Playgroud)
docker-compose up -d- 启动您的项目,它将在http:// localhost:3000上提供.docker-compose run --rm boilerplate /bin/bash - 访问您的容器.| 归档时间: |
|
| 查看次数: |
2861 次 |
| 最近记录: |