You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker开发环境中nodemon: Permission denied问题解决求助

Docker Node.js开发环境nodemon权限拒绝问题解决

问题场景

搭建Node.js v16.16.0 Docker开发环境,使用Nodemon和Docker卷实现本地文件与容器同步,相关配置及操作如下:

Dockerfile.dev

FROM node:alpine

WORKDIR /usr/src/app

COPY . .

RUN npm install

EXPOSE 3000

CMD ["npm", "run", "dev"]

package.json

{
  "name": "docker-example-1",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node index",
    "dev": "nodemon index",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "Kane Hooper <kanehooper@hotmail.com>",
  "license": "MIT",
  "dependencies": {
    "express": "^4.18.1"
  },
  "devDependencies": {
    "nodemon": "^2.0.19"
  }
}

执行启动命令:

docker run -p 8080:3000 -v $(pwd):/usr/src/app -v /usr/src/app/node_modules --name nodeappcontainer nodeapp

运行后报错:

/tmp/dev6585779965.sh: line 2: nodemon: Permission denied

解决方法

方法1:用npx调用nodemon

修改package.json的dev脚本,通过npx指定调用容器内本地node_modules中的nodemon:

"scripts": {
  "start": "node index",
  "dev": "npx nodemon index",
  "test": "echo \"Error: no test specified\" && exit 1"
}

重新构建镜像并启动容器即可,npx会自动定位到node_modules/.bin下的可执行文件,规避权限路径问题。

方法2:全局安装nodemon

修改Dockerfile.dev,将nodemon安装为全局包:

FROM node:alpine

WORKDIR /usr/src/app

COPY . .

RUN npm install && npm install -g nodemon

EXPOSE 3000

CMD ["npm", "run", "dev"]

全局安装的nodemon会被加入系统PATH,无需依赖本地node_modules的权限,直接运行nodemon命令即可。

方法3:使用非root用户运行容器

Alpine镜像默认以root用户运行,挂载本地目录易引发权限冲突。修改Dockerfile.dev创建并切换到非root用户:

FROM node:alpine

WORKDIR /usr/src/app

# 创建非root用户组和用户
RUN addgroup -S appgroup && adduser -S appuser -G appgroup

COPY . .

RUN npm install

# 切换到非root用户
USER appuser

EXPOSE 3000

CMD ["npm", "run", "dev"]

该方式符合容器安全规范,同时避免root权限带来的文件权限问题。

方法4:修正本地文件权限

若本地项目目录或node_modules由root用户创建,挂载到容器后会触发权限拒绝。在本地执行以下命令修改权限:

sudo chown -R $USER:$USER .

删除本地node_modules目录(容器内的node_modules由匿名卷维护,不会被覆盖),重新启动容器即可。

内容的提问来源于stack exchange,提问作者Kane Hooper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 19:18:39