web-dev-qa-db-ja.com

`gcloud app deploy`を実行するときにファイルを無視するにはどうすればよいですか?

走ると

gcloud app deploy app.yaml

どのファイルが実際にアップロードされますか?

プロジェクトフォルダーには、デプロイされたアプリケーションに関係のない.git.git_ignoreMakefilevenvなどのフォルダーとファイルが含まれます。

gcloud app deployはどのファイルをアップロードするかをどのように決定しますか?

10
Lars Blumberg

tl; dr:.gcloudignoreskip_filesではなく、app.yamlファイルを使用する必要があります。

前の2つの回答では、skip_filesファイルのapp.yamlを使用しています。 .gcloudignoreまたはuploadコマンドを使用すると作成されるgcloud deployがあります。デフォルトは、使用している検出された言語によって異なりますが、ここに自動的に作成されます.gcloudignoreは、私のPythonプロジェクト:

# This file specifies files that are *not* uploaded to Google Cloud Platform 
# using gcloud. It follows the same syntax as .gitignore, with the addition of
# "#!include" directives (which insert the entries of the given .gitignore-style
# file at that point).
#
# For more information, run:
#   $ gcloud topic gcloudignore
#
.gcloudignore
# If you would like to upload your .git directory, .gitignore file or files
# from your .gitignore file, remove the corresponding line
# below: 
.git 
.gitignore

# Python pycache:
__pycache__/

:これらのコマンドは、skip_filesが定義されていて.gcloudignoreが存在する場合は機能しません。これは skip_filesdefinition of theapp.yaml`リファレンス には記載されていません。

gcloudコマンド全体でグローバルに認識されている標準を使用する方が適切であり、AppEngineなしでのみ関連する.gcloudignoreを使用するよりもskip_filesを採用する方が理にかなっています。さらに、リファレンスで言及されている.gitignoreファイルとほとんど同じように機能します。

.gcloudignoreの構文は、.gitignoreの構文から大きく借用しています。完全なリファレンスについては、 https://git-scm.com/docs/gitignore またはmangitignoreを参照してください。

https://cloud.google.com/sdk/gcloud/reference/topic/gcloudignore

13
dalanmiller

2018年8月の編集:Googleはそれ以来.gcloudignoreを導入しましたが、これは現在好まれています。dalanmillerの回答を参照してください。


skip_filesapp.yaml命令を使用しない限り、これらはすべてアップロードされます。 .gitのようなドットのあるファイルはデフォルトで無視されます。さらに追加したい場合は、これらのデフォルトを上書きしていることに注意してください。ほぼ確実にそれらを維持したいと考えています。

skip_files:
  - ^Makefile$
  - ^venv$
  # Defaults
  - ^(.*/)?#.*#$
  - ^(.*/)?.*~$
  - ^(.*/)?.*\.py[co]$
  - ^(.*/)?.*/RCS/.*$
  - ^(.*/)?\..*$

静的ハンドラーを使用する場合は、別の場所にアップロードされることにも注意してください。静的ファイルはCDNに送信され、言語のランタイムでは利用できません(ただし、それを回避する方法もあります)。

必ずドキュメントをお読みください。

https://cloud.google.com/appengine/docs/standard/python/config/appref#skip_files

10
Chris

Gcloud app deployは、アップロードするファイルをどのように決定しますか?

そうではありません。デフォルトですべてをアップロードします。別の応答で述べたように、app.yamlの skip_files セクションを次のように使用できます。

skip_files:
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
- ^(.*/)?\.bak$
- ^\.idea$
- ^\.git$

--verbosityパラメータを使用して、デプロイされているファイルを確認することもできます。つまり、gcloud app deploy app.yaml --verbosity=debugまたはgcloud app deploy app.yaml --verbosity=infoドキュメントごと です。

0
Mihail Russu