【问题标题】:How to push empty directories using cf push in Bluemix?如何在 Bluemix 中使用 cf push 推送空目录?
【发布时间】:2016-11-24 01:04:41
【问题描述】:

我正在尝试使用命令将节点应用程序推送到Bluemix

cf push <APP NAME> -c "node app.js"

被推送的节点应用程序几乎没有空的嵌套目录。

应用程序有一个初始化代码,需要这些嵌套目录存在。它使用它们在运行时复制和生成文件。

问题

当我推送应用程序时,不会推送空目录[仅推送非空的其他文件和目录],因此当应用程序尝试定位它时,它会失败

错误:ENOENT 没有这样的文件或目录错误。

解决方法是向每个目录添加一个随机文件[使它们不再为空],然后将其推送到 Bluemix(通过 Cloud Foundry)。

期待

如何在将应用程序推送到 Bluemix 时推送空目录?这些目录最初是空的,但稍后将在应用程序在 Bluemix 中运行时用于生成和保存文件或文档。

【问题讨论】:

  • 请注意,不推荐使用本地文件。如果您的应用崩溃或需要重新启动,那么这些文件就会消失。
  • 同意。我需要这个选项,因为当 nodebb 应用程序推送到 Bluemix 时,它会在运行时在这个位置创建一些临时初始化文件[不确定目的]。当它没有找到该位置时,它会给出 RR 25/11 04:27 [29] - 错误:错误:ENOENT:没有这样的文件或目录,scandir '/home/vcap/app/public/uploads/sounds'。因此,每当我在构建后推送 nodebb 应用程序代码时,我都需要推送公用文件夹。但是由于公用文件夹及其所有子文件夹都是空的,因此它们没有被 cf push 添加。
  • 正如我在之前的评论中提到的,在我看来,这些目录仅用于运行时的临时存储。但我会记住这个提示。谢谢。

标签: ibm-cloud cloud-foundry


【解决方案1】:

如果您有在推送时被忽略的资源并且您不希望它们被忽略,请创建一个 .cfignore 文件并在其中列出它们,并在其行的开头使用 !

intermediateFileFolderToIgnore/ !tempFolderToNotIgnore/

您可以找到syntax for cfignore/gitignore here

【讨论】:

  • 供参考:我不得不推送公用文件夹 [ 有几个子文件夹,但它们都是空的]。所以我用 !/public 行创建了 .cignore 文件。然后cf推送应用程序。公用文件夹被推送到虚拟机,即使它是空的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多