Next.js-错误生成目录在Google Cloud Build上不可写
我曾尝试使用Cloud Build将我的Next.JS应用程序自动部署到App Engine,但在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
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分钟,然后必须手动进行部署,这是我一直坚持的哈哈