首页 > 解决方案 > 如何将我的本地 React 目录挂载到我的 React docker 容器中?

问题描述

我正在尝试构建一个在 Docker 容器中运行的 React 16.13.0 应用程序(与 Django 应用程序一起)。我想挂载我的本地 React 目录,以便我的 React docker 容器从那里读取它的文件,这样如果我更改本地文件系统上的文件,我的 React docker 容器会自动获取它。我有这个 docker-compose.yml 文件...

version: '3'

services:
...
  client:
    build:
      context: ./client
    volumes:
      - /app/node_modules
      - ./client:/app
    ports:
      - '3001:3000'
    restart: always
    container_name: web-app
    environment:
      - NODE_ENV=development
      - REACT_APP_PROXY=http://localhost:9090
    #command: npm run start
    depends_on:
      - web
...

这是我的 React 目录(客户端/Dockerfile)中的 Dockerfile 文件...

FROM node:10-alpine AS alpine

# A directory within the virtualized Docker environment
# Becomes more relevant when using Docker Compose later
WORKDIR /usr/src/app

# Copies package.json and package-lock.json to Docker environment
COPY package*.json ./

# Installs all node packages
RUN npm install

# Finally runs the application
CMD [ "npm", "start" ]

可悲的是,这似乎不起作用。对我的本地文件系统的更改没有反映在我正在运行的 Docker 容器中。我还应该做什么?

标签: reactjsdocker-composedockerfilemount

解决方案


Dockerfile 似乎还可以。这是 docker-compose.yml 的一部分。注意环境。变量 CHOKIDAR_USEPOLLING=true 在底部。

version: '3.7'

services:

  react:
    container_name: react
    build:
      context: react/
      dockerfile: Dockerfile
    volumes:
      - './react:/app'
      - '/app/node_modules'
    stdin_open: true
    ports:
      - 3000:3000
    environment:
      - CHOKIDAR_USEPOLLING=true

推荐阅读