如何在 Elastic Beanstalk 多容器 Docker 环境中安装 composer 依赖项

Posted

技术标签:

【中文标题】如何在 Elastic Beanstalk 多容器 Docker 环境中安装 composer 依赖项【英文标题】:How to install composer dependencies on Elastic Beanstalk Multicontainer Docker Environment 【发布时间】:2016-02-28 11:21:59 【问题描述】:

我有一个在 Docker 上运行的 php 应用程序(php:5.6-apache 映像)。我使用 AWS Elastic Beanstalk Multicontainer Docker Environment 将应用程序部署到云端(使用 Dockerrun.aws.json v2)。

我的问题是我在部署后找不到一个好的工作流程来更新作曲家依赖项。

在我的 Dockerrun.aws.json 的内容下面:


  "AWSEBDockerrunVersion": 2,
  "volumes": [
    
      "name": "php-app",
      "host": 
        "sourcePath": "/var/app/current/php-app"
      
    
  ],
  "containerDefinitions": [
    
      "name": "php-app",
      "image": "php:5.6-apache",
      "essential": true,
      "memory": 512,
      "portMappings": [
        
          "hostPort": 80,
          "containerPort": 80
        
      ],
      "mountPoints": [
        
          "sourceVolume": "php-app",
          "containerPath": "/var/www/html",
          "readOnly": true
        
      ]
    
  ]

在 Elastic Beanstalk 多容器 Docker 环境中运行 composer install 的推荐方式是什么?

【问题讨论】:

【参考方案1】:

强烈建议部署您的应用程序并预​​先安装依赖项。让您的部署过程依赖于 github 和 packagist 充其量是脆弱的,不推荐。理想情况下,除了在您的开发和 CI 环境之外,您永远不会在任何地方运行 Composer。您的 CI 环境应该为暂存/生产环境生成一个完全可部署的发布包(包括所有依赖项等)。

【讨论】:

谢谢!一个问题:我们如何处理数据库迁移?

以上是关于如何在 Elastic Beanstalk 多容器 Docker 环境中安装 composer 依赖项的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Amazon linux 2 在 Elastic beanstalk 中使用多容器 docker?

如何将特定日志文件从多容器 Docker Elastic Beanstalk 流式传输到 CloudWatch?

如何将 Let encrypt 添加到在 Elastic Beanstalk 上运行的多容器中

如何在 Elastic Beanstalk 应用程序中的 Docker 容器之间共享卷?

具有私有存储库的 Elastic Beanstalk 多容器 Docker CannotPullContainerError

使用 cloudformation 在 Elastic Beanstalk 上启动 docker 多容器