在ElasticBeanstalk上部署时切换环境文件

时间:2019-11-29 15:15:58

标签: amazon-elastic-beanstalk

我实际上是在ElasticBeanstalk上部署我的Laravel应用。

我想根据环境切换.env文件,但是我无法设法使测试正常工作。

这是我在.ebextensions / 02-env-file.config中编写的内容

option_settings:
  aws:elasticbeanstalk:application:environment:
    ENV_NAME: '`{ "Ref" : "AWSEBEnvironmentName" }`'  # assign the actual env name to ENV_NAME

container_commands:
  01-config-environment:
    command: mv /var/app/ondeck/.env.staging /var/app/ondeck/.env
    test: '[[ $ENV_NAME = "Staging" ]]'
    command: mv /var/app/ondeck/.env.demo /var/app/ondeck/.env
    test: '[[ $ENV_NAME = "Demo" ]]'

但是无论我的环境如何,它似乎总是运行最后一个命令。 我想我在这里想念什么,但找不到。

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我终于有了我问题的答案。如果有人遇到同样的问题,我会在这里发布。

事实证明,如果我们捆绑2条命令,ElasticBeanstalk可能无法正确执行它们。

要实现我想要的功能,我需要将命令分成2个:

container_commands:
  01-config-environment-staging:
    command: mv .env.staging .env
    test: '[[ ${ENV_NAME} = "Staging" ]]'
  02-config-environment-demo:
    command: mv .env.demo .env
    test: '[[ ${ENV_NAME} = "Demo" ]]'