我尝试使用Dockerfile在Docker容器上运行NextJS并通过docker-compose运行,在JS文件(例如index.js)中更改代码后,未重新加载Next服务器。

但是,当我尝试在不使用Docker的情况下在室外运行(通过直接执行“npm run dev”命令)时,Next服务器确实能够顺利重新加载。

我还尝试通过“nodemon”命令(在容器内)运行服务器,但也没有成功。

Dockerfile:

FROM node:10.14.2-alpine
COPY . /home/next_app
WORKDIR /home/next_app
RUN npm install

docker-compose.yml:
version: "3.6"
services:
  self_nextjs:
    container_name: self_nextjs
    build:
        context: ./app
        dockerfile: Dockerfile
    ports:
        - 3000:3000
    volumes:
        - ./app:/home/next_app
        - /home/next_app/node_modules
    networks:
        - zen_frontend
    restart: always
    command: npm run dev

networks:
  zen_frontend:
      name: zen_frontend
      driver: bridge

任何建议,将不胜感激。

最佳答案

您是否通过公开webpack的默认热装端口进行了测试?

添加到您的Dockerfile

...
EXPOSE 49153
...

并更新您的docker-compose.yml
version: "3.6"
services:
  self_nextjs:
    container_name: self_nextjs
    build:
        context: ./app
        dockerfile: Dockerfile
    ports:
        - 3000:3000
        - 49153:49153
    volumes:
        - ./app:/home/next_app
        - /home/next_app/node_modules
    networks:
        - zen_frontend
    restart: always
    command: npm run dev

networks:
  zen_frontend:
      name: zen_frontend
      driver: bridge

希望有帮助

问候

08-28 03:47