出现错误错误:EACCES:权限被拒绝,取消链接“/usr/app/.next/BUILD_ID”

Mik*_*e K 9 javascript node.js docker next.js

我正在尝试根据本教程使用 nginx 来 Dockerize 基本的 NextJS 设置。

我有一个用 typescript 编写的 NextJS 应用程序和一个自定义 Express 服务器,我将其部署到 Heroku。它会构建并提供服务的服务器文件.next/production-server/server.js

当我尝试按照上述指南对应用程序进行 Dockerize 时,我运行时出现错误,

Getting error Error: EACCES: permission denied, unlink '/usr/app/.next/BUILD_ID'
Run Code Online (Sandbox Code Playgroud)

我尝试运行以从节点 alpinechmod授予node用户访问权限,但它不断抛出相同的错误。

我不确定我做错了什么。如果我要从这里直接从该指南克隆存储库并运行docker-compose up,那么它似乎工作正常。但似乎当我尝试向其中添加 TS 配置时,它失败了。

FROM node:alpine

WORKDIR /usr/app

RUN npm install --global pm2

COPY ./package.json ./

RUN npm install --production

COPY ./ ./

RUN npm run build

USER node # <----------------- seems to fail with this user

EXPOSE 3000

CMD [ "pm2-runtime", "start", "npm", "--", "start" ]

Run Code Online (Sandbox Code Playgroud)

我的 Github 存储库在这里

如果注释掉该行USER node,那么它就可以正常工作。