将Elastic Beanstalkconfiguration更改为Docker

我目前正在运行Elastic Beanstalk应用程序的Node JSconfiguration。 我想要将环境更改为Docker,而不必删除环境。 有谁知道我怎么能做到这一点?

有一个重build环境的行动,但我不知道这是否会让我改变configuration。

我没有任何东西上传到环境,所以我不担心文件或数据库被删除。

有任何想法吗?

编辑:

我的问题是,我有另一台服务器上的DNS指向我的弹性beanstalk域(domain.elasticbeanstalk.com)。 如果我删除应用程序,我可以得到这个名字吗?

你实际上不能改变Docker,Node.js等之间的环境types(基于http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html ),但你可以创build具有不同域的新环境,并使用“交换CNAME”function。 在这种情况下,您的新环境将获得相同的URL(旧的可以安全地删除)。

您可以使用EB CLI执行此操作。 (3.2+)只要执行eb config并将解决scheme堆栈名称更改为所需的确切解决scheme堆栈string即可。

我find了一种方法来做到这一点,没有url交换或删除,并使用aws cli重新创build环境。 这可能是一种黑客,但它不是太糟糕,它的工作。

首先,更新环境以使用新的解决scheme堆栈。 我发现我必须删除新解决scheme堆栈中不支持的选项集,而且我必须同时更改为可以在新解决scheme堆栈上运行的新应用程序版本:

 aws elasticbeanstalk update-environment --solution-stack-name \ "64bit Amazon Linux 2016.03 v2.1.0 running Docker 1.9.1" \ --environment-name my-env-name \ --options-to-remove Namespace=aws:elasticbeanstalk:container:python,OptionName=WSGIPath \ --version-label new-version-label 

这个命令可以工作,但是会导致混乱的环境,因为beanstalk更新了所有的设置,但是你仍然得到了一个底层的EC2和旧的解决scheme堆栈。 所以重build环境:

 aws elasticbeanstalk rebuild-environment --environment-name my-env-name 

环境恢复正常!