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

Docker运行时触发Vite权限错误问题排查

Vite创建.vite/deps_temp目录时权限被拒的解决方案

错误日志

web_services-api-1            | Watching for file changes with StatReloader
web_services-frontend-1       | node:fs:1395
web_services-frontend-1       |   handleErrorFromBinding(ctx);
web_services-frontend-1       |   ^
web_services-frontend-1       |
web_services-frontend-1       | Error: EACCES: permission denied, mkdir '/frontend/node_modules/.vite/deps_temp'
web_services-frontend-1       |     at Object.mkdirSync (node:fs:1395:3)
web_services-frontend-1       |     at runOptimizeDeps (file:///frontend/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:42704:14)
web_services-frontend-1       |     at Timeout._onTimeout (file:///frontend/node_modules/vite/dist/node/chunks/dep-5e7f419b.js:42112:58)
web_services-frontend-1       |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
web_services-frontend-1       |   errno: -13,
web_services-frontend-1       |   syscall: 'mkdir',
web_services-frontend-1       |   code: 'EACCES',
web_services-frontend-1       |   path: '/frontend/node_modules/.vite/deps_temp'
web_services-frontend-1       | }
web_services-frontend-1       |
web_services-frontend-1       | Node.js v18.13.0

当前权限配置

drwxrwxrwx 312 arundeep docker    12288 Jan 23 14:24 node_modules

drwxrwxr-x  6 arundeep docker  4096 Jan 22 21:14 vite

drwxrwxr-x 2 arundeep docker   4096 Jan 22 21:14 bin
-rw-rw-r-- 1 arundeep docker   3913 Jan 22 21:14 client.d.ts
drwxrwxr-x 5 arundeep docker   4096 Jan 22 21:14 dist
-rw-rw-r-- 1 arundeep docker    997 Jan 22 21:14 index.cjs
-rw-rw-r-- 1 arundeep docker 168938 Jan 22 21:14 LICENSE.md
-rw-rw-r-- 1 arundeep docker   3980 Jan 22 21:14 package.json
-rw-rw-r-- 1 arundeep docker   1164 Jan 22 21:14 README.md
drwxrwxr-x 3 arundeep docker   4096 Jan 22 21:14 src
drwxrwxr-x 2 arundeep docker   4096 Jan 22 21:14 types

问题分析

虽然node_modules目录权限为777,但Vite创建目标目录失败,常见原因包括:

  • 运行Vite的进程用户不属于arundeep或docker组,无写入权限
  • .vite父目录(若已存在)权限配置异常
  • Docker卷挂载时的权限限制导致写入失败

解决方法

1. 手动创建目录并修正权限

直接创建目标目录并赋予对应权限:

mkdir -p /frontend/node_modules/.vite/deps_temp
chown -R arundeep:docker /frontend/node_modules/.vite
chmod -R 775 /frontend/node_modules/.vite

2. 修改Vite缓存目录路径

在vite.config.js/vite.config.ts中指定缓存目录到项目内有权限的路径:

export default {
  cacheDir: './.vite-cache'
}

3. 调整Docker运行用户

如果是Docker环境,启动容器时指定运行用户为arundeep:docker:

docker run -u arundeep:docker [其他启动参数]

或者在Dockerfile中添加用户组配置:

RUN usermod -aG docker node

4. 检查挂载卷权限

确认/frontend挂载的卷不是只读模式,宿主机对应目录需允许写入:

# 宿主机端修正权限
chown -R arundeep:docker /宿主机对应前端目录路径
chmod -R 775 /宿主机对应前端目录路径

内容的提问来源于stack exchange,提问作者Arundeep Chohan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 05:21:56