我在Ubuntu OS上开发了我的网站,但是今天我已移至Windows。迁移到Windows之前,Nodemon可以工作,但是现在如果我单击保存,它将无法重新启动。
Dockerfile

FROM node:current-alpine3.11

RUN mkdir /mbs_welfare

WORKDIR /mbs_welfare

COPY package.json /mbs_welfare/

RUN npm install

COPY . /mbs_welfare

RUN npm install -g nodemon

EXPOSE 3000

CMD ["nodemon","server.js"]
docker-compose.yml
version: "3.8"
services:
    web:
        build: .
        restart: always
        ports:
            - 3000:3000
        volumes:
            - .:/mbs_welfare

    mysql_db:
        image: mysql:latest
        command: --default-authentication-plugin=mysql_native_password
        environment:
            MYSQL_ROOT_PASSWORD: ****
        ports:
            - 3306:3306
        volumes:
            - mysql_db:/var/lib/mysql

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        ports:
            - 8000:80
        links:
            - mysql_db:db
        environment:
            MYSQL_USERNAME: root
            MYSQL_ROOT_PASSWORD: ****
            PMA_HOST: mysql_db

volumes:
    mysql_db:
package.json 我尝试“启动”的一些代码:“nodemon -L ./server.js”,但它不起作用
{
  "name": "welfare",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "dev": "nodemon ./server.js",
    "start": "nodemon ./server.js",
    "test": "echo \"Error: no test specified\" && exit 1"
}
CMD
web_1 : [nodemon] 2.0.4
web_1 : [nodemon] to restart at any time, enter 'rs'
web_1 : [nodemon] watching path(s) *.*
web_1 : [nodemon] watching extensions: js,mjs,json
web_1 : [nodemon] starting 'node server.js'
web_1 : Server is running on port : 3000

最佳答案

nodemon需要inotify-tools库来检测Linux上文件的更改,Linux上阿尔卑斯山版本的nodejs容器中不存在此更改。您可以在dockerfile中使用apk add inotify-tools安装它。
我记得较早版本的Windows版Docker Desktop在主机绑定(bind)安装的文件绑定(bind)中未检测到文件更改(换句话说,inotify-tools文件系统监视无效)。如果您安装了inotify-tools并且仍然没有检测到文件更改,则这可能仍然是一个问题。
在这种情况下,您必须force nodemon to use polling
最后,如果这些都不适合您,我建议您在Windows上切换到WSL,这将使您省去很多麻烦(我猜WSL2具有本机docker支持,这非常棒)

关于node.js - 保存时Docker Nodemon无法启动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62769660/

10-13 07:28