使用Docker开发环境并部署到AWS Elastic Beanstalk

时间:2015-02-03 19:58:44

标签: php laravel docker elastic-beanstalk

我正在编写一个PHP应用程序,并希望开发环境成为Docker容器。为此,我在项目的根目录中创建了一个Dockerfile,它安装了我的应用程序所需的所有软件包,将配置文件复制到容器中,然后安装我的应用程序。

这很好用,但现在我需要告诉我的PHP应用程序它所处的环境,developmentproduction。这也很简单,我可以将其添加到我的Dockerfile

ENV environment development

现在,当我构建我的图像时,我的PHP应用程序以development模式运行。好的,现在我可以在Docker容器中构建我的应用程序了!

但是当我想将此应用程序部署到生产服务器(AWS Elastic Beanstalk,具体)时会发生什么?如果我在Dockerfile中指定环境为development,那么当我的应用程序部署到Elastic Beanstalk时,我的应用程序是否会在开发模式下运行?

1 个答案:

答案 0 :(得分:2)

设置环境变量是一种很好的方法;但是,通过在Dockerfile中执行此操作,您可以为从该图像派生的任何容器设置它。你真正想要做的是逐个容器地设置它。这样做的方法是在运行容器时设置它:

开发:

docker run --env environment=development my-image

生产:

docker run --env environment=production my-image

请注意,即使在Dockerfile中设置环境变量,这也会有效 - 使用docker run --env设置的变量将覆盖Dockerfile中设置的值。