如何将本地React目录挂载到React Docker容器中?

时间:2020-04-01 17:59:45

标签: reactjs docker-compose dockerfile mount

我正在尝试构建一个运行在Docker容器(以及Django应用程序)中的React 16.13.0应用程序。我想挂载本地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文件(client / 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容器中未反映对本地文件系统的更改。我还应该做什么?

1 个答案:

答案 0 :(得分:0)

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