【问题标题】:Deploying to different environments with different env variables on elastic beanstalk from the same git repository从同一个 git 存储库部署到具有不同环境变量的弹性 beanstalk 上的不同环境
【发布时间】:2018-08-13 13:22:30
【问题描述】:

管理具有多个环境分支的 git 存储库的环境变量配置文件的最佳做法是使用“eb deploy”部署到 Elastic Beanstalk 上的不同环境?

我有一个带有 prod 和 dev 分支的 git 存储库,EB 设置了 prod 和 dev 环境,以及每个 env 的环境配置文件(用于 prod 的 env.config,用于 dev 的 env_dev.config)。 env 文件在 .gitignore 中,但不在 .ebignore 中,因此它们不在源代码控制中,而是部署到 EB。

如何设置以便 env.config 仅部署到生产环境,而 env_dev.config 仅部署到开发环境?我询问了 AWS 支持,他们说没有办法在环境级别设置条件来告诉它要包含什么配置文件。

另一个想法是在每个分支中都有一个 .ebignore 文件,忽略另一个分支的 env.config 文件,但是当我将开发分支合并到生产时,这个文件也会出现。

【问题讨论】:

  • 你有什么好运的工作吗?我们现在遇到了同样的问题。
  • 我最终做的不是使用弹性 beanstalk 环境作为开发服务器,我只是使用一个普通的 EC2 实例,我使用远程 FTP 包连接到 Atom 上。我正在使用 Laravel,所以我的 env 变量来自 .env ,它刚刚与应用程序一起上传到我的 EC2 实例。

标签: git environment-variables amazon-elastic-beanstalk


【解决方案1】:

您可以使用 ebextensions 的 container_commands 来实现此目的:

  1. 以某种方式获取ENVIRONMENT 环境变量。
  2. 创建一个.ebextension container command 基本上将source 获取正确的文件。 .ebextension 文件,例如 env_sourcer.config,如下所示:

    container_commands:
      if [ $ENVIRONMENT == 'PRODUCTION' ]; then source ./env.config; else source ./env_dev.config; fi
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-26
    • 2015-07-05
    • 2014-08-11
    • 2013-01-17
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2018-12-03
    相关资源
    最近更新 更多