为什么子文件夹未部署到Google App Engine nodejs应用程序

时间:2016-12-26 02:38:24

标签: node.js google-app-engine deployment gcloud

我正在开发nodejs网络应用并尝试在Google云中运行它。

只有根文件夹中的文件才会使用gcloud app deploy命令部署到Google App Engine。 appengine / express示例应用程序依赖于子文件夹,在部署时不起作用

重现的步骤:

  1. 使用package.json,app.yaml,app.js
  2. 创建简单的应用程序
  3. 创建一些文件夹,在其中放入一些文件
  4. 安装gcloud,从应用程序文件夹运行gcloud app deploy
  5. 如果您需要位于子文件夹中的任何本地模块,则部署将失败
  6. 如果您的部署成功,请转到Google云控制台,应用引擎,版本,点击Instances列中的数字 - 右键单击​​ssh即可看到实例列表。
  7. 在ssh控制台中运行“container_exec gaeapp /bin/bash”,然后“cd app”,然后“ls
  8. 您将看到没有使用该应用程序部署文件夹
  9. 这是环境问题,gcloud实用程序还是我做错了什么?

1 个答案:

答案 0 :(得分:1)

gcloud app deploy尊重上传文件时要跳过的两个子文件夹列表:

  1. 目录中的任何.dockerignore文件。使用nodejs运行时,将为您创建一个包含以下条目的运行时:

    node_modules
    .dockerignore
    Dockerfile
    npm-debug.log
    .git
    .hg
    .svn
    
  2. app.yaml文件中的skip_files条目。默认情况下,匹配以下正则表达式的文件匹配:

    - ^(.*/)?#.*#$
    - ^(.*/)?.*~$
    - ^(.*/)?.*\.py[co]$
    - ^(.*/)?.*/RCS/.*$
    - ^(.*/)?\..*$
    
  3. 如果丢失的目录与这些目录中的任何一个都不匹配,则可能存在另一个问题。您应该提交问题here并在清理个人数据后附加与部署相关联的日志(在gcloud info --format="value(logs.logs_dir)"指定的位置)。

    也就是说,我只是尝试在node.js samples中为App Engine部署appengine/express示例,并且能够在没有任何问题的情况下使用Cloud SDK版本138.0.0。

相关问题