Next.js-错误生成目录在Google Cloud Build上不可写

Next.js-错误生成目录在Google Cloud Build上不可写,next.js,google-cloud-build,Next.js,Google Cloud Build,我曾尝试使用Cloud Build将我的Next.JS应用程序自动部署到App Engine,但在Build阶段,它一直失败: Error: > Build directory is not writeable. https://err.sh/vercel/next.js/build-dir-not-writeable 我似乎不知道该怎么解决这个问题 我当前的生成文件是,并且在步骤2中不断失败: steps: # install dependencies - name: 'gcr.i

我曾尝试使用Cloud Build将我的Next.JS应用程序自动部署到App Engine,但在
Build
阶段,它一直失败:

Error: > Build directory is not writeable. https://err.sh/vercel/next.js/build-dir-not-writeable
我似乎不知道该怎么解决这个问题

我当前的生成文件是,并且在步骤2中不断失败:

steps:
  # install dependencies
- name: 'gcr.io/cloud-builders/npm'
  args: ['install']
  # build the container image
- name: 'gcr.io/cloud-builders/npm'
  args: ['run', 'build']
  # deploy to app engine
- name: "gcr.io/cloud-builders/gcloud"
  args: ["app", "deploy"]
  env:
  - 'PORT=8080'
  - 'NODE_ENV=production'
timeout: "1600s"
app.yaml:

runtime: nodejs12

handlers:
- url: /.*
  secure: always
  script: auto

env_variables:
  PORT: 8080
  NODE_ENV: 'production'

任何帮助都将不胜感激

升级到下一版本9.3.3后,您可以重现相同的行为

原因 这个问题与npm依赖关系有关,如果您使用
gcr,它由google管理。io/cloud builders/npm
似乎是在旧节点版本的google cloud build中运行您的构建

在这里您可以找到当前支持的版本

正如你所看到的,谷歌最新的节点版本是10.10。最新的next.js版本至少需要节点10.13

解决方案 将gcr.io/cloud builders/npm更改为

- name: node
  entrypoint: npm
为了使用在node12上运行的正式docker npm包。 在这些更改之后,您的构建将再次成功

旁注
切换到官方npm将增加构建持续时间(至少在我的情况下)。它比gcr npm要长大约2分钟。

你的下一个.js版本是什么?在我的app.yaml中,我指定它使用v12。我注意到我遗漏了这一点,所以刚刚将其添加到我上面的帖子中是EC2上的next.js的一个相关问题,他们建议设置项目目录的权限-
sudo chmod 777-R/your_project_path
太棒了,谢谢!这就解决了问题。我宁愿延迟2分钟,然后必须手动进行部署,这是我一直坚持的哈哈