如何解决Yarn 的 Docker 权限问题
我在尝试运行我的容器时遇到以下问题:
psa-web | Error: EACCES: permission denied,open '/root/.config/yarn'
psa-web | at Object.openSync (node:fs:495:3)
psa-web | at readFileSync (node:fs:396:35)
psa-web | at /opt/yarn-v1.22.5/lib/cli.js:101332:58
psa-web | at Array.map (<anonymous>)
psa-web | at parseRcPaths (/opt/yarn-v1.22.5/lib/cli.js:101330:78)
psa-web | at Object.findRc (/opt/yarn-v1.22.5/lib/cli.js:101344:10)
psa-web | at getRcConfigForCwd (/opt/yarn-v1.22.5/lib/cli.js:56916:74)
psa-web | at /opt/yarn-v1.22.5/lib/cli.js:92695:56
psa-web | at Generator.next (<anonymous>)
psa-web | at step (/opt/yarn-v1.22.5/lib/cli.js:310:30)
psa-web | npm ERR! code 1
psa-web | npm ERR! path /usr/src/app
psa-web | npm ERR! command failed
psa-web | npm ERR! command sh -c yarn install && next dev
psa-web |
psa-web | npm ERR! A complete log of this run can be found in:
psa-web | npm ERR! /root/.npm/_logs/2021-01-29T09_01_06_202Z-debug.log
version: "3"
services:
psa-web:
build:
context: .
dockerfile: Dockerfile
container_name: psa-web
restart: always
volumes:
- ./:/usr/src/app
- /usr/src/app/node_modules
- /usr/src/app/.next
ports:
- "${NEXT_PUBLIC_APP_PORT}:${NEXT_PUBLIC_APP_PORT}"
这是我的 Dockerfile:
FROM node:15.5.0-alpine3.10
RUN apk add --update --no-cache \
python \
make \
g++
WORKDIR /usr/src/app
# install and cache app dependencies
COPY package.json /usr/src/app
COPY yarn.lock /usr/src/app
RUN yarn install --frozen-lockfile
EXPOSE 3003
CMD ["npm","run","dev"]
这里还有 package.json 文件,以获得更好的上下文。那是我在 dev 上启动下一个应用程序之前自动运行的 yarn install
,以及此错误的潜在来源。
package.json
"scripts": {
"dev": "yarn install && next dev","build": "next build","start": "yarn install && next start","lint": "eslint .","update:shared-deps": "yarn upgrade --scope @project-stock-alarm --latest","lint:fix": "eslint . --fix"
},
对我做错了什么有任何想法吗?
如果我执行 sudo yarn install
和 sudo chown -R root
可以解决问题,但这不是最佳做法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。