How can I exclude a file from deploy in gcloud?

I have built a Node.js app and what I do to deploy is cd into my project's directory and run gcloud preview app deploy. This works, but in the files I also have a JSON file which acts like the database for my application, which I do not want updated on the site when I deploy.

I cannot seem to find any way of doing this.

Any idea?

4 Answers

In this case, a .gcloudignore file would help by preventing the upload of any file or directory. The syntax is the same as the .gitignore file.

First you could make sure gcloudignore is enabled:

gcloud config list 

If it is not, then you may enable it:

gcloud config set gcloudignore/enabled true 

Some gcloud commands like gcloud functions deploy may automatically generate a .gcloudignore file.

The .gcloudignore file must reside in the project root folder.

Here is the .gcloudignore that is automatically generated by the gcloud function deploy command:

# 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 

This worked fine for me with a NodeJS project with the following structure:

~/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 

In this case, without the .gcloudignore this is what is deployed:

enter image description here

And with the following .gcloudignore:

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

This is what is deployed:

enter image description here

See more on this.

3

There is skip_files directive in your app.yaml to exclude paths or files you do not want deployed.

But If you are working on a node.js project you would have to use .gcloudignore file which will specify which directories to exclude.

This .gcloudignore would prevent the upload of the node_modules/ directory and any files ending in ~:

 node_modules/ *~ 

Reference to documentation:
1.
2. (search 'skip_files')

I believe you will want to use the skip_files directive in your app.yaml to exclude paths or files you do not want deployed.

Something like:

skip_files: - ^your_data_dir/.*\.json? 
2

In the case for google compute engine run:

gcloud config set gcloudignore/enabled true 

In the case of google app engine: create a file called .gcloudignore in root dir and add the folders or files to be ignored it acts just like .gitignore

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like