有人可以看看下面的01composer.config文件,看看migrateSeed命令是否有问题,因为弹性豆茎给出了错误Application deployment failed at 2016-06-10T15:53:58Z with exit status 1 and error: container_command 02-migrateSeed in .ebextensions/01composer.config failed.
commands:
composer_update:
command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update
option_settings:
- namespace: aws:elasticbeanstalk:application:environment
option_name: COMPOSER_HOME
value: /root
container_commands:
01-install_dependencies:
command: "php /usr/bin/composer.phar install"
cwd: "/var/app/ondeck"
02-migrateSeed:
command: "php artisan migrate --force"
cwd: "/var/app/ondeck"
03-seed:
command: "php artisan db:seed --force"
cwd: "/var/app/ondeck"
04-optimize:
command: "php /usr/bin/composer.phar dump-autoload --optimize"
cwd: "/var/app/ondeck"
将脚本更改为:
02-migrateSeed:
command: "php artisan migrate --force"
cwd: "/var/app/ondeck"
leader_only: true
03-seed:
command: "php artisan db:seed --force"
cwd: "/var/app/ondeck"
leader_only: true
我的猜测是,数据被第一个实例(领导者)正确设定种子,然后另一个实例试图重新设定相同的数据种子,从而导致 MySQL 约束违规异常。
设置为 true 时,领导者仅标志将确保仅在第一个实例上运行这些命令。
编辑:
查看此其他答案以获取有关leader_only
的更多信息AWS Elastic Beanstalk - 为什么要将 leader_only 用于命令?