AWS elastic beanstalk git 部署由于作曲家问题突然失败,尽管 composer.json 没有任何变化
AWS elastic beanstalk git deployment suddenly failing due to composer issue despite no changes to composer.json
我在 AWS Elastic Beanstalk 中有许多环境 运行。我使用 git aws.push.
直接从 git 部署
我使用 composer.json 安装所需的 php sdk。我已经很长时间没有更改这个文件了,但是它突然在所有环境中都开始失败了。
AWS 日志的输出是
+ echo 'Found composer.json file. Attempting to install vendors.'
Found composer.json file. Attempting to install vendors.
+ composer.phar install --no-ansi --no-interaction
Loading composer repositories with package information
Installing dependencies
[RuntimeException]
Could not load package aws/aws-sdk-php in http://packagist.org: [UnexpectedValueException] Could not parse version constraint ^5.3: Invalid version string "^5.3"
[UnexpectedValueException]
Could not parse version constraint ^5.3: Invalid version string "^5.3"
install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader]
2015-05-28 09:57:18,414 [ERROR] (15056 MainThread) [directoryHooksExecutor.py-33] [root directoryHooksExecutor error] Script /opt/elasticbeanstalk/hooks/appdeploy/pre/10_composer_install.sh failed with returncode 1
我的 composer.json 是:
{
"require": {
"aws/aws-sdk-php": "2.7.*",
"monolog/monolog": "1.0.*",
"facebook/php-sdk-v4" : "4.0.*",
"ext-curl": "*",
"paypal/sdk-core-php": "v1.4.2",
"paypal/permissions-sdk-php":"v2.5.106",
"paypal/adaptivepayments-sdk-php":"2.*"
}
}
我注意到它确实需要 aws-sdk-php 但版本不是 5.3(在日志中提到)。
5.3 让我想到 php 版本,检查 php -v i get
php -v
PHP 5.5.12 (cli) (built: May 20 2014 22:27:36)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
我尝试重新安装以前安装良好的旧版本,但它们也失败并出现相同的错误。这应该是环境造成的。有谁知道最近有没有变化。
在项目的根目录中创建一个名为 .ebextensions 的文件夹。然后在其中创建一个名为 01-composer-install.config 的新文件,内容如下。
commands:
01_update_composer:
command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update
option_settings:
- namespace: aws:elasticbeanstalk:application:environment
option_name: COMPOSER_HOME
value: /root
我只需要使用此处的说明更新作曲家:
https://getcomposer.org/download/
我在 AWS Elastic Beanstalk 中有许多环境 运行。我使用 git aws.push.
直接从 git 部署我使用 composer.json 安装所需的 php sdk。我已经很长时间没有更改这个文件了,但是它突然在所有环境中都开始失败了。
AWS 日志的输出是
+ echo 'Found composer.json file. Attempting to install vendors.'
Found composer.json file. Attempting to install vendors.
+ composer.phar install --no-ansi --no-interaction
Loading composer repositories with package information
Installing dependencies
[RuntimeException]
Could not load package aws/aws-sdk-php in http://packagist.org: [UnexpectedValueException] Could not parse version constraint ^5.3: Invalid version string "^5.3"
[UnexpectedValueException]
Could not parse version constraint ^5.3: Invalid version string "^5.3"
install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader]
2015-05-28 09:57:18,414 [ERROR] (15056 MainThread) [directoryHooksExecutor.py-33] [root directoryHooksExecutor error] Script /opt/elasticbeanstalk/hooks/appdeploy/pre/10_composer_install.sh failed with returncode 1
我的 composer.json 是:
{
"require": {
"aws/aws-sdk-php": "2.7.*",
"monolog/monolog": "1.0.*",
"facebook/php-sdk-v4" : "4.0.*",
"ext-curl": "*",
"paypal/sdk-core-php": "v1.4.2",
"paypal/permissions-sdk-php":"v2.5.106",
"paypal/adaptivepayments-sdk-php":"2.*"
}
}
我注意到它确实需要 aws-sdk-php 但版本不是 5.3(在日志中提到)。
5.3 让我想到 php 版本,检查 php -v i get
php -v
PHP 5.5.12 (cli) (built: May 20 2014 22:27:36)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
我尝试重新安装以前安装良好的旧版本,但它们也失败并出现相同的错误。这应该是环境造成的。有谁知道最近有没有变化。
在项目的根目录中创建一个名为 .ebextensions 的文件夹。然后在其中创建一个名为 01-composer-install.config 的新文件,内容如下。
commands:
01_update_composer:
command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update
option_settings:
- namespace: aws:elasticbeanstalk:application:environment
option_name: COMPOSER_HOME
value: /root
我只需要使用此处的说明更新作曲家: https://getcomposer.org/download/