首页 > 解决方案 > dockerized react - 如何自动启用热重载

问题描述

我目前正在对接 MERN 应用程序。

应用分为 2 个,前端的 react 应用和后端的 express 应用。

目标是在反应应用程序上启用热重载。

这是我的docker-compose.yml文件:

version: '3'

services:
  mango:
    container_name: mango
    image: nginx:alpine
    ports:
      - 3000:80
    volumes:
      - ./docker/app/nginx.conf:/etc/nginx/conf.d/default.conf
      - ./build:/usr/share/nginx/html
    depends_on:
      - mango-builder
    command: "/bin/sh -c 'nginx -g \"daemon off;\"'"
    logging:
      options:
        max-size: "10m"
        max-file: "3"
    networks:
      - local_network

  mango-builder:
    container_name: mango-builder
    image: node:12.13.0
    working_dir: /app
    volumes:
      - .:/app
    command: bash -c "rm -rf /app/package-lock.json && rm -rf /app/yarn.lock && yarn && if [ `$NODE_ENV` = `development` ]; then yarn run start; else yarn run build; fi"
    logging:
      options:
        max-size: "10m"
        max-file: "3"
    networks:
      - local_network

networks:
  local_network:

注意:

  1. NODE_ENV设置为development时,它将运行yarn run start命令。
  2. 每当有反应组件更改时,yarn 都会尝试重新编译依赖项
  3. mango-builder将首先在mango
  4. build文件夹由 生成mango-builder,然后附加到mango(检查volumes部分)
  5. react 应用在浏览器上运行良好

当我尝试更改反应模块时,不知何故热重载不起作用。

我有一种感觉,我需要yarn run start在后台继续运行,但我不知道该怎么做。

有什么想法吗?

标签: reactjsdockerhot-reload

解决方案


推荐阅读