我想运行 gitlab-ci 管道将我的express.js Web应用程序部署到GAE/SE环境。
当我的 gitlab-ci 管道启动并运行 gcloud app deploy
时,gcloud 命令失败,如下所示:
ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: This deployment has too many files. New versions are limited to 10000 files for this app.
- '@type': type.googleapis.com/google.rpc.BadRequest
fieldViolations:
- description: This deployment has too many files. New versions are limited to 10000
files for this app.
field: version.deployment.files[...]
我尝试使用命令 find 来计算我的文件数。 -类型 f | wc -l
,但它说我的存储库中只有 3886 个文件。
我的问题:
- 为什么 GAE/SE 服务器显示要上传的文件太多?
- 如果我忽略了某些事情,有什么办法可以解决这个问题吗? (或者,我必须使用 flex env?)
.gitlab-ci.yml
image: node:8
cache:
paths:
- node_modules/
stages:
- deploy
deploy:production:
stage: deploy
environment:
name: production
url: `${GAE_URL}`
before_script:
- wget https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz
- tar zxvf google-cloud-sdk.tar.gz && ./google-cloud-sdk/install.sh --usage-reporting=false --path-update=true
- PATH="google-cloud-sdk/bin:${PATH}"
script:
- echo $GAE_KEY_FILE > gae_auth.json
- ./google-cloud-sdk/bin/gcloud auth activate-service-account --key-file gae_auth.json
- ./google-cloud-sdk/bin/gcloud app deploy --project=$GAE_PROJECT_ID
only:
- dev
.gcloudignore
.git/
node_modules/
*~
最佳答案
有一个limit App Engine 上每个目录有 1000 个文件,每个应用程序有 10000 个文件。我相信与您的应用程序一起部署的库导致了此错误。您可以使用app.yaml文件skip_files
指令忽略部署到 App Engine 不需要的文件/文件夹。
要确定正在部署哪些文件并可能导致此错误,您可以设置 verbosity
在部署命令中标记为 debug
,如下所示。
gcloud app deploy --verbosity=debug
我还发现了一个类似的 StackOverflow 答案,它描述了所有这些细节 here .
希望这有帮助。
关于node.js - 将nodejs应用程序部署到gae/se : gcloud app deploy : This deployment has too many files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53821535/