我是Docker
的新成员。
文件在使用bind mount
进行更改时同步,但nodemon
没有重新运行。要查看更改,我必须停止容器并使用docker compose up
重新启动。
- 我尝试了很多解决方案,但问题仍然存在 *
Dockerfile
FROM node:18-alpine3.17
WORKDIR /app
COPY package*.json /app
RUN npm ci
COPY . /app
EXPOSE 3000
# CMD [ "npm", "run", "dev" ]
docker-compose.yml
version: "3.9"
services:
frontend:
build:
context: .
dockerfile: Dockerfile
command: npm run dev
container_name: study-001-frontend-reactjs
networks:
- study-001
ports:
- 3000:3000
volumes:
- .:/app
- /app/node_modules
networks:
study-001:
package.json
{
"name": "001-study",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "nodemon index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.18.2"
},
"devDependencies": {
"nodemon": "^2.0.20"
}
}
如果我在不使用Docker的情况下运行项目,一切都很好。
我错过了什么?
1条答案
按热度按时间rqenqsqc1#
我怀疑nodemon没有正确安装在docker容器中。
:
docker-compose.yml:删除卷/app/nodemodules。
停靠文件:
尝试使用npm i而不是npm ci。
将copy package*.json ./app更改为package*.json ./
您已经将工作目录声明为/app,因此请将copy . /app替换为copy .。
最后杀死容器,删除镜像并再次执行docker-compose up