Docker:EACCES:权限被拒绝,mkdir '/app/node_modules/.cache'
Posted
技术标签:
【中文标题】Docker:EACCES:权限被拒绝,mkdir \'/app/node_modules/.cache\'【英文标题】:Docker: EACCES: permission denied, mkdir '/app/node_modules/.cache'Docker:EACCES:权限被拒绝,mkdir '/app/node_modules/.cache' 【发布时间】:2021-08-10 20:02:46 【问题描述】:我在尝试在 React 应用程序中构建 docker 容器时遇到权限错误。 我试图利用社区的答案,但没有帮助。 关注相关discussion我试过了:
我得到当前用户:id -un
试过这个:sudo chown -R myUser:myUser /usr/local/lib/node_modules
这也抛出了同样的错误:sudo chown -R ownerName: /usr/local/lib/node_modules
与此相同:sudo chown -R $USER /usr/local/lib/node_modules
添加用户没有帮助:sudo chown -R $USER /app/node_modules
试图授予安装此权限:sudo npm install -g --unsafe-perm=true --allow-root
另一个尝试是删除 node_modules 并安装指定 sudo
: sudo npm install
将此添加到docker-compose
文件,也没有帮助:
environment:
- CHOKIDAR_USEPOLLING=true
我正在尝试使用以下命令进行构建:docker-compose up --build
Dockerfile.dev 文件
FROM node:alpine
WORKDIR '/app'
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "run", "start"]
docker-compose.yml 文件
version: "3"
services:
web:
stdin_open: true
environment:
- CHOKIDAR_USEPOLLING=true
build:
context: .
dockerfile: Dockerfile.dev
ports:
- "4000:4000"
volumes:
- /app/node_modules
- .:/app
错误
Building web
Step 1/6 : FROM node:alpine
---> 50389f7769d0
Step 2/6 : WORKDIR '/app'
---> Using cache
---> bb4d4ffdeb02
Step 3/6 : COPY package.json .
---> Using cache
---> c4e5fce6b1e0
Step 4/6 : RUN npm install
---> Using cache
---> 9383aea4aba6
Step 5/6 : COPY . .
---> Using cache
---> 98ea3037694f
Step 6/6 : CMD ["npm", "run", "start"]
---> Using cache
---> 6edf3365a6db
Successfully built 6edf3365a6db
Successfully tagged app_web:latest
Starting app_web_1 ...
Starting app_web_1 ... done
Attaching to app_web_1
web_1 |
web_1 | > app@0.1.0 start
web_1 | > react-scripts start
web_1 |
web_1 | ℹ 「wds」: Project is running at http://172.20.0.2/
web_1 | ℹ 「wds」: webpack output is served from
web_1 | ℹ 「wds」: Content not from webpack is served from /app/public
web_1 | ℹ 「wds」: 404s will fallback to /
web_1 | Starting the development server...
web_1 |
web_1 | Failed to compile.
web_1 |
web_1 | EACCES: permission denied, mkdir '/app/node_modules/.cache'
任何帮助将不胜感激
【问题讨论】:
你可以试试 Dockerfile 中的chmod 777 -R
吗?只是为了确定问题是什么..
【参考方案1】:
试试这个 Docker - EACCES: permission denied, mkdir '/app/node_modules/.cache'
这对我有用
RUN chown -R node:node /app/node_modules
或 sh 进入 docker 容器并运行
chown -R node:node /app/node_modules
【讨论】:
我意识到这影响了没有设置非 sudo docker 的 ubuntu 用户。如果我在npm install
之前先RUN mkdir -p /app/node_modules
然后RUN chown node:node /app/node_modules
然后它工作得同样好但要快得多。以上是关于Docker:EACCES:权限被拒绝,mkdir '/app/node_modules/.cache'的主要内容,如果未能解决你的问题,请参考以下文章
将 React 添加到工作区失败,EACCES:权限被拒绝,mkdir '/home/mint/.cache/Cypress'
Errno::EACCES(权限被拒绝@dir_s_mkdir
Rails 4.2.0 - Errno::EACCES(权限被拒绝@dir_s_mkdir - /files)
错误:EACCES:权限被拒绝,mkdir '/usr/local/lib/node_modules/node-sass/build'
AWS:EACCES:权限被拒绝,mkdir '/home/react-app/node_modules/node-sass/vendor'