gcloud app deploy : This deployment has too many files

后端 未结 7 1962
無奈伤痛
無奈伤痛 2020-12-06 17:06

I got the below error, when I tried to deploy my GAE app through gcloud.

Updating service [default]...failed.                                                         


        
相关标签:
7条回答
  • 2020-12-06 17:27

    If you really have more than the 10000 files quota in the service you're trying to deploy then you might have to reduce the number accordingly.

    Other things to try:

    • you might be able to get a quota increase, see Getting error on GAE: Max number of files and blobs is 10000
    • delete whatever files are not actually needed, or just skip them during deployment see skip_files or, for the more recent cloud SDK versions, the .gcloudignore file.
    • if you have a lot of static files consider moving (some of) them to GCS instead, see Approaches for overcoming 10000 file limit on Google App Engine?
    • split the service into multiple smaller services - each with its own 10000 files limit.

    Assuming you do not actually hit the files quota then the error usually indicates you have looping/circular referencing symlinks in your app directory. Which could also explain a path like the one you mentioned in a comment to this post: https://stackoverflow.com/a/42425048/4495081. You just have to fix the offending symlink(s). Again, a simple/consistent directory structure could help prevent such issues.

    0 讨论(0)
  • 2020-12-06 17:28

    For python runtime 3.7, this error is solved by adding these files to a .gcloudingore not to skip_files in the app.yaml

    0 讨论(0)
  • 2020-12-06 17:31

    Maybe your need ignore some files in file .gcloudignore

    /vendor/
    /node_modules/
    /.git/
    

    This work for me!

    0 讨论(0)
  • 2020-12-06 17:33

    As mentioned in some comment, virtualenv folder can have a lot of files.

    I just added venv/ as a new line into .gcloudignore file.

    0 讨论(0)
  • 2020-12-06 17:36

    gcloud app deploy writes a log file, and tells you where that log is early in its output. Examine that log. It'll tell you what's being uploaded.

    Two common ways I've seen people get into trouble are

    1. Using virtualenv, but not adding venv (or .venv, if that's the name you picked) to skip_files.
    2. Using git, but forgetting to add .git to skip_files
    0 讨论(0)
  • 2020-12-06 17:39

    Few things:

    1. Sometimes the static folder can get a bit messy. Try deleting it and rerunning python manage.py collectstatic, this cut down about 2000 files for me.
    2. Make sure your .gcloudignore file ignores the assets folder, given they've just been moved to static.
    3. Ignore virtualenv folders, they're big
    0 讨论(0)
提交回复
热议问题