首页 文章

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

提问于
浏览
2

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

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

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

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

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

2 回答

  • 1

    为了完整起见,另一种方法是在名为.profile.d的文件夹中创建一个可执行的.sh脚本,该文件夹位于您的CloudFoundry Bluemix应用程序文件的根目录(如果这是基于Laravel编写器,可能就是您的composer.json所在的位置) . 这将针对应用程序启动运行每个应用程序实例 prior .

    希望这可以帮助 .

  • 1

    鉴于您在部署后创建文件,您应该能够从应用程序本身创建它 .

    如果你使用的是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文件的目的是将环境变量传递给您的应用程序,那么您可以通过多种方式实现此目的 .

    Add environment variables to your app from the Bluemix UI

    • 单击您的应用程序以显示应用程序仪表板

    • 单击环境变量(左侧)

    • 单击“用户定义”

    • 单击“添加”

    Add environment variables to your app from the CLI

    cf set-env APP_NAME ENV_VAR_NAME ENV_VAR_VALUE
    

    Add a user provided service to store your environment variables

    您可以使用 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

相关问题