web-dev-qa-db-ja.com

gcloudでのデプロイからファイルを除外するにはどうすればよいですか?

Node.jsアプリをビルドしました。デプロイするために行うことは、プロジェクトのディレクトリにcdを入れて、gcloud preview app deployを実行することです。これは機能しますが、ファイルには、アプリケーションのデータベースのように機能するJSONファイルもあります。これは、デプロイ時にサイトで更新したくないものです。私はこれを行う方法を見つけることができないようです。それが不可能な場合は、JSONファイルをリモートで表示し、そのデータをローカルファイルにコピーしてから、すべてをデプロイすることもできますが、それもできないようです。

11
iuliu.net

App.yamlで skip_files ディレクティブを使用して、デプロイしたくないパスまたはファイルを除外することをお勧めします。

何かのようなもの:

skip_files:
  - ^your_data_dir/.*\.json?
13
Michael McCoy

App.yamlには、デプロイしたくないパスまたはファイルを除外するためのskip_filesディレクティブがあります。

ただし、node.jsプロジェクトで作業している場合は、除外するディレクトリを指定する.gcloudignoreファイルを使用する必要があります。

この.gcloudignoreは、node_modules /ディレクトリと〜で終わるファイルのアップロードを防ぎます。

  node_modules/
  *~

ドキュメントへの参照:
1。 https://cloud.google.com/sdk/gcloud/reference/topic/gcloudignore
2。 https://cloud.google.com/appengine/docs/standard/nodejs/config/appref (検索 'skip_files')

11
Chromonav

この場合、.gcloudignoreファイルは、ファイルまたはディレクトリのアップロードを防ぐのに役立ちます。構文は.gitignoreファイルと同じです。

まず、gcloudignoreが有効になっていることを確認できます。

gcloud config list

そうでない場合は、有効にすることができます。

gcloud config set gcloudignore/enabled true

gcloud functions deployなどの一部のgcloudコマンドは、.gcloudignoreファイルを自動的に生成する場合があります。

.gcloudignoreファイルは、プロジェクトのルートフォルダーに存在する必要があります

.gcloudignoreコマンドによって自動的に生成されるgcloud function deployは次のとおりです。

# 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

node_modules

これは、次の構造のNodeJSプロジェクトで問題なく機能しました。

~/Workspace/my-project $ tree -a
.
├── .idea
│   ├── func-project.iml
│   ├── misc.xml
│   ├── modules.xml
│   ├── vcs.xml
│   └── workspace.xml
├── .gcloudignore
├── index.js
├── package-lock.json
└── package.json

この場合、without.gcloudignoreこれがデプロイされるものです。

enter image description here

そしてwith次の.gcloudignore

.gcloudignore
.git
.gitignore
.idea
node_modules
package-lock.json

これが展開されるものです:

enter image description here

これについての詳細 を参照してください。

2
rbento