我尝试使用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
希望有帮助
问候