3

我有一个在Docker上运行的PHP应用程序(php:5.6-apache image)。我使用AWS Elastic Beanstalk Multicontainer Docker Environment将应用程序部署到云中(使用Dockerrun.aws.json v2)。如何在Elastic Beanstalk多容器Docker环境中安装Composer依赖关系

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

下面我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 
     } 
     ] 
    } 
    ] 
} 

什么是对弹性青苗多包装泊坞环境中运行composer install推荐的方法是什么?

回答

3

强烈建议部署应用程序并预​​先安装依赖关系。让你的部署过程取决于github和packagist,最好是脆弱的,而不是推荐的。理想情况下,除了开发和CI环境以外,您绝不会运行Composer。您的CI环境应为分段/生产环境生成完全可部署的发行包(包括所有依赖关系等)。

+0

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

+0

在任何情况下,这些都很棘手。根据我的经验,最好单独发布它们,并确保您发布的任何更改都是两步过程(适用时)。 根据我的经验,数据库迁移不能完全自动化。这太冒险了。 – alcohol

+1

例如,要重命名列,首先引入新列,然后释放使用新列和旧列的代码,然后将数据从旧列迁移到新列,然后是仅使用新列的版本,然后放下旧列。 当引入一个新表格或新列时,过程更简单。添加它,然后释放使用它的代码。 – alcohol

相关问题