从托管的Cloud Foundry应用程序创建Cloud Foundry服务

问题描述 投票:0回答:1

我有一个使用Swisscom托管的Cloud Foundry应用程序。 我需要该应用程序提供的功能之一是,用户可以设置Cloud Foundry服务-特别是Swisscom Secrets-Store服务。 但是,事实证明这是一个挑战。

首先,我使用cloudfoundry-cli NPM模块从我的应用程序创建服务,就像提供的示例一样:

const cf = require('cloudfoundry-cli')
cf.provisionService({
  name: 'mongoNo1',
  type: 'compose-for-mongodb',
  plan: 'Standard'
}, function(err) {
  if (err) return console.log(err)
  console.log('Service provisioned')
})

当我在本地运行我的应用程序时,此方法运行良好,因为显然我的计算机上安装了CF CLI。 但是,当我将应用程序推送到Swisscom并尝试创建服务时,没有发生任何事情,因为应用程序上未安装CF CLI。

我还签出了cf-nodejs-client ,如果您不想通过允许传递Cloud Foundry登录详细信息和API端点来安装CF CLI,则建议这样做。 但是,我已经检查了文档,并且似乎该NPM模块不允许您创建服务。 这些文档显示您可以getService,getServicePlans,getServices或删除-没有创建选项。

最坏的情况是我可以通过SSH进入正在运行的应用程序并安装CF CLI,但为此,您需要无法进行root访问。

我的问题是-推送时是否可以在应用程序上安装CF CLI? 也许可以在推送应用程序时安装CF CLI的buildpack? 我已经检查了社区构建包的列表,但似乎不存在,我也不知道从哪里开始创建。 否则,是否有人会知道如何在不需要CF CLI的情况下从Node应用程序创建Cloud Foundry服务。

cloudfoundry swisscomdev
1个回答
1
投票

推送时是否可以在应用程序上安装CF CLI?

一种选择是简单地将cf cli与您的应用程序捆绑在一起。 这是一个静态二进制文件,因此很容易与您的应用程序捆绑在一起。 以下应该工作。

  1. 此处下载适用于Linux的cf cli并解压缩。
  2. 将其放入应用程序根目录下的文件夹中。 例如: mkdir bin/然后将二进制文件从步骤1移动到bin/文件夹。
  3. .profile文件添加到应用程序的根目录。 在该文件中,放置export PATH=$PATH:$HOME/bin ,这会将步骤2中的bin/目录放在PATH上(将bin更改为您命名该文件夹的名称)。

现在cf push您的应用程序。 这将包括二进制文件。 启动时, .profile脚本将执行并将cf二进制文件的路径放在PATH上。 因此,您可以在容器中运行cf ...命令。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.