用docker-compose运行pm2时节点错误ENOSPC
当我的pm2服务启动时出现以下错误:
Error: watch /usr/src/app/node_modules/zip-stream/node-modules/loadash/... ENOSCP at exports._errnoException (util.js:1034:11) at FSWatcher.start (fs.js:1400:19) at Object.fs.watch (fs.js:1426:11) at createFsWatchInstance (/usr/local/lic/node_modules/pm2/node_modules/chokidar/lib/nodefs-handler.js:37:15) .... at FSReqWrap.oncomplete (fs.js:114:15)
只有在构build和运行docker时才会发生这种情况:
docker – 撰写 – build立
如果我只是build立docker,然后在docker里面命令:
docker-compose exec downtorrent_back_dev bash
sh start.sh
那么,它启动服务没有任何问题。
这是docker-compose.yml文件:
version: '3' services: downtorrent_back: container_name: downtorrent_back_dev build: context: . dockerfile: Dockerfile-back.dev volumes: - ./back:/usr/src/app expose: - "10002" - "9090" - "51413" ports: - "10002:10002" - "9090:9090"
这个启动服务的脚本start.sh :
#!/bin/bash # Fix limit on system for watching files echo fs.inotify.max_user_watches=524288 | tee -a /etc/sysctl.conf && sysctl -p npm dedupe # Start transmission torrent client service transmission-daemon start # Start service pm2 start start.config.json --only downtorrent --env dev --no-daemon
这是PM2configuration文件 :
{ "apps": [{ "name": "downtorrent", "script": "./app.js", "watch": true, "ignoreWatch": ["newrelic_agent.log"], "instances": 2, "log_date_format" : "DD-MM-YYYY HH:mm Z", "exec_mode": "cluster", "env": { "NODE_ENV": "dev", "APP_PORT": 10002 } }] }
正如你所看到的,我已经在ENOSCP问题中尝试了这个问题中提出的解决scheme,但是仍然无法正常工作。