Docker容器上的ReactJs开发
我怎样才能使用docker容器与Docker在Windows上开发Reactjs?
到目前为止,我已经能够运行我的应用程序,但livereload不起作用。
应用/结构
- build立
- node_module
- 上市
- SRC
- 泊坞窗,compose.yml
- Dockerfile
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" ]
泊坞窗,compose.yml:
version: "2" services: frontend: container_name: "boilerplate" build: . environment: env_file: .env NODE_ENV: development ports: - '3000:3000' volumes: - .:/usr/src/app
这是Windows已知的限制(不要太担心,有一个很好的解决方法)
这是Windows主机上Docker的已知限制 。 以下是Docker的文档中提到的问题:
inotify共享驱动器不起作用
目前,inotify在Docker for Windows上不起作用。 例如,当应用程序需要通过安装的驱动器读取/写入容器时,这将变得明显。 我们build议为您的框架或编程语言使用轮询function,而不是依赖文件系统inotify。
- nodemon和Node.js的解决方法 – 如果使用Nodemon和Node.js,请尝试下面描述的fallback轮询模式: nodemon不重新启动节点应用程序
- Docker for Windows在GitHub上的问题 – 查看问题共享驱动器上的Inotify不起作用
解决方法
但是, 解决方法是使用轮询机制:
- chokidar – 一个围绕node.js fs.watch / fs.watchFile / fsevents的整洁包装。
- nodemon – 监控node.js应用程序中的任何更改,并自动重新启动服务器 – 非常适合开发 。
- webpack – 如果观看不起作用,请尝试使用轮询选项。 观看不适用于VirtualBox中的NFS和计算机。
- 等等
完成Docker&React设置
只是为了你的情况,我已经开始了Docker容器中的react-create-app ,livereloadfunction非常完美。 问题是通过创build.envconfiguration文件启用chokidar轮询 。
这里是我的configuration( 灵感来自@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" ]
泊坞窗,compose.yml
version: "2" services: frontend: container_name: "boilerplate" build: . environment: env_file: .env NODE_ENV: development ports: - '3000:3000' volumes: - .:/usr/src/app
.ENV
CHOKIDAR_USEPOLLING=true
脚本
-
docker-compose up -d
– 启动您的项目,它将在http:// localhost:3000上可用。 -
docker-compose run --rm boilerplate /bin/bash
– 访问您的容器。
- 如何让不同的Docker容器相互交谈而不将端口暴露给全世界
- 如何让我的hdfsdocker客户端运行?
- ImportError:在重新启动Pod修复程序时,无法在窗格中导入名称<package>
- 如何将文件夹从Dockerfile复制到Docker镜像?
- 共享容器之间共享容量,其中一个提供其文件系统?
- 是否有可能在我们自己的服务器上configurationdocker映像签名与私有dockerregistry? Docker镜像签署付费服务?
- jupyter无法打开一个目录来运行docker容器
- 在artifactory中将Docker存储库configuration为子域
- docker推入不使用正确的存储库,并失败