在 Bluemix 上部署文件后创建文件

Create a file after deploying file on Bluemix

我有一个使用 IBM devops 服务部署到 bluemix 的应用程序。我使用 Cloud Foundry 作为部署程序类型并从我的 SCM 存储库输入。

一切正常,但我需要在部署后在应用程序的根目录中创建一个名为 .env 的文件。

在我的部署脚本中,我已经尝试了所有这些

touch app/.env
touch .env
touch home/vcap/app/.env

但似乎没有任何效果。部署后如何创建此文件。

假设您在部署 之后创建文件,您应该能够从您的应用程序本身创建它。

如果您使用 node.js:

,您可以将此示例放在 app.js(或 server.js)文件的顶部
var fs = require('fs');

fs.writeFile('.env', data, function (err) {
  if (err) throw err;
  console.log('Created .env file');
});

------编辑------

如果您的 .env 文件的目的是将环境变量传递给您的应用程序,那么您有多种方法可以实现这一点。

从 Bluemix 向您的应用程序添加环境变量 UI

  • 单击您的应用程序以调出应用程序仪表板
  • 点击环境变量(在左边)
  • 点击用户定义
  • 单击添加

从 CLI 向您的应用添加环境变量

cf set-env APP_NAME ENV_VAR_NAME ENV_VAR_VALUE

添加用户提供的服务来存储您的环境变量

您可以使用 cf cups 命令创建自己的 Bluemix 服务,例如:

cf create-user-provided-service SERVICE_INSTANCE -p '{"name":"value","name":"value"}'

然后您可以使用 cf bind-service 命令将此服务绑定到应用程序:

cf bind-service APP_NAME SERVICE_INSTANCE [-c PARAMETERS_AS_JSON]

无论您如何创建环境变量,这些都可以在您的应用程序中从 process.env.VCAP_SERVICES 变量访问。

Further documentation

为了完整起见,另一种方法是在 CloudFoundry Bluemix 应用程序文件的根目录下名为 .profile.d 的文件夹中创建一个可执行的 .sh 脚本(如果这是,则可能是 composer.json 所在的位置) Laravel 基于作曲家)。这将 运行 每个应用程序实例 应用程序启动之前。

希望对您有所帮助。