【问题标题】:Generate ".env" when Deploying with Bitbucket AWS CodeDeploy add-on使用 Bitbucket AWS CodeDeploy 插件部署时生成“.env”
【发布时间】:2018-10-16 21:07:00
【问题描述】:

使用 Bitbucket AWS CodeDeploy 插件部署时如何生成“.env”?

我看到bitbucket-pipelines.yml 可以从 bitbucket 环境变量生成 .env,但是,如何将它与 Bitbucket AWS CodeDeploy 插件绑定?

appspec.yml - 可以在部署时触发脚本,但我怎样才能让它从 bitbucket 环境变量中获取 .env?

【问题讨论】:

    标签: bitbucket aws-code-deploy bitbucket-pipelines bitbucket-aws-code-deploy


    【解决方案1】:

    查看documentation,BitBucket 应该使环境在构建环境中可用,并且您应该能够直接在由appspec.yml 运行的脚本中访问它们,就像访问任何其他环境变量一样。

    例如,如果我们有这样的 appspec:

    hooks:
       AfterInstall:
         - location: scripts/runTests.sh
           timeout: 180
    

    您可以像这样访问scripts/runTests.sh 中的环境变量:

    # scripts/runTests.sh
    echo "$BITBUCKET_BUILD_NUMBER"
    # Or, use in some other valid way in your script
    

    【讨论】:

    • 我还没有验证自己。我看到没有其他人回答这个问题,所以我做了一些研究并试图提供一个解决方案。如果您尝试了它并且它不起作用,我将删除答案。
    • 我试过它对我不起作用。对不起。它可能适用于 bitbucket 管道,但不适用于 AWS CodeDeploy。
    【解决方案2】:

    BitBucket 不应该创建.env,这个服务应该对生产.env 一无所知。相反,生产 .env 应该放在安全的 AWS S3 bucket 上,只有 AWS CodeDeploy 脚本可以将它放在实例上。

    会这样复制

    sudo aws --region us-east-2 s3 cp "s3://${S3_NAME}/prod.env" "${EC2_DIRECTORY}/.env"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-20
      • 2018-04-06
      • 2018-12-16
      • 2018-04-27
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多