【问题标题】:Development environment with Docker and deploying to AWS Elastic Beanstalk使用 Docker 的开发环境并部署到 AWS Elastic Beanstalk
【发布时间】:2015-04-03 03:56:17
【问题描述】:

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

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

ENV environment development

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

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

【问题讨论】:

    标签: php laravel docker amazon-elastic-beanstalk


    【解决方案1】:

    设置环境变量是个好办法;但是,通过在 Dockerfile 中执行此操作,您可以为从该映像派生的任何容器设置它。您真正想要做的是在逐个容器的基础上设置它。方法是在运行容器时进行设置:

    用于开发:

    docker run --env environment=development my-image

    对于生产:

    docker run --env environment=production my-image

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

    【讨论】:

    • 现在我查看了 --env 标志,发现它就在文档中……我一定是跳过了它。 :/ 谢谢! :)
    猜你喜欢
    • 2015-10-23
    • 2016-07-18
    • 2015-08-05
    • 1970-01-01
    • 2015-07-05
    • 2017-01-29
    • 2016-04-20
    • 2020-05-02
    • 2016-06-19
    相关资源
    最近更新 更多