我安装了php应用程序(Laravel)和eb CLI。在当地,一切都很好。
初始应用程序按预期工作(上传为archive.zip on created)。
当我使用以下命令将我的仓库推送到我的应用程序时
git aws.push
失败了。日志说:
[2014-12-12T16:53:38.652Z] INFO [28264] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/10_composer_install.sh] : Activity failed.
[2014-12-12T16:53:38.652Z] INFO [28264] - [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook] : Activity failed.
[2014-12-12T16:53:38.652Z] INFO [28264] - [CMD-AppDeploy/AppDeployStage0] : Activity failed.
[2014-12-12T16:53:38.653Z] INFO [28264] - [CMD-AppDeploy] : Completed activity. Result:
Command CMD-AppDeploy failed.
和这个
[2014-12-12T16:53:38.653Z] ERROR [28264] : Command CMD-AppDeploy failed!
[2014-12-12T16:53:38.654Z] INFO [28264] : Command processor returning results:
{"status":"FAILURE","api_version":"1.0","truncated":"true","results":
[{"status":"FAILURE","msg":"[CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/10_composer_install.sh]
command failed with error code 1:
/opt/elasticbeanstalk/hooks/appdeploy/pre/10_composer_install.sh\n++ /opt/elasticbeanstalk/bin/get-config container -k app_staging_dir\n+ EB_APP_STAGING_DIR=/var/app/ondeck\n+
cd /var/app/ondeck\n+ '[' -f composer.json ']'\n+
export COMPOSER_HOME=/root\n+ COMPOSER_HOME=/root\n+ '[' -d vendor ']'\n++ /opt/elasticbeanstalk/bin/get-config optionsettings -n aws:elasticbeanstalk:container:php:phpini -o composer_options\n+ PHP_COMPOSER_OPTIONS=\n+
echo 'Found composer.json file. Attempting to install vendors.'\nFound composer.json file.
Attempting to install vendors.\n+ composer.phar install --no-ansi --no-interaction\nLoading composer repositories with package information\nInstalling dependencies (including require-dev) from lock file\n - Installing symfony/finder (v2.5.8)\n ","returncode":1,"events":[]}]}
我当时认为这是一个Composer问题,我已经进入实例并在机器内完成了一个作曲家更新,但工作正常。
我已从.gitignore
中删除了composer.lock文件我无法在网上找到任何相似内容,所以我假设我正在做某事/错过了一些非常明显的事情。
答案 0 :(得分:5)
上周我遇到了与Symfony部署相同的问题。由于Symfony prod / dev环境存在问题,安装后脚本会以某种方式失败。
我的临时修复是禁用后安装脚本并在以后设置正确的SYMFONY_ENV时运行它们。
在我的.elasticbeanstalk/application.config
:
option_settings:
- namespace: aws:elasticbeanstalk:container:php:phpini
option_name: composer_options
value: --no-dev --optimize-autoloader --no-scripts
和
container_commands:
21_composer_postinstall:
command: composer.phar run-script post-install-cmd
我的案例中AppDeployPreHook/10_composer_install.sh
失败的实际错误是在其他一个日志文件中,因此您可能需要深入挖掘。
答案 1 :(得分:5)
我设法解决了我遇到的问题。我有一些失败的私人回购,因为我没有在bitbucket中设置部署密钥,因此无法下载它们。将以下内容添加到我的配置文件中解决了这个问题。
files:
"/root/.ssh/bitbucket_deployment_key":
mode: "000600"
owner: root
group: root
content: |
-----BEGIN RSA PRIVATE KEY-----
PUT YOUR PRIVATE KEY HERE
-----END RSA PRIVATE KEY-----
"/root/.ssh/config":
mode: "000600"
owner: root
group: root
content: |
Host bitbucket.org
StrictHostKeyChecking no
IdentityFile /root/.ssh/bitbucket_deployment_key
UserKnownHostsFile /dev/null
来自https://github.com/modern-media/wordpress-on-beanstalk
我不确定这是否能解决问题。错误消息非常通用。我不得不深入研究完整的EB日志到达我的底部。
其他强>
我还发现有时作曲家可能会失败,因为它在尝试下载回购时会得到404。虽然composer.lock
文件应该可靠,但我总是很奇怪。这是一个简单的解决方案。只需删除您的.lock
文件并再次运行composer update即可在.lock
文件中获取正确的repo网址。
答案 2 :(得分:0)
在aws beantalk上设置wordpress时,我遇到了同样的问题。我的问题是,我在Windows机器上本地压缩了文件,然后上传了始终无法部署的文件。但是,将文件压缩在服务器上然后下载并使用该zip作为将来的部署应用程序总是可行的。因此,将文件从/ var / app / current /复制到/ home / ec2-user /文件夹,然后从那里压缩文件,下载该zip文件,并将其作为软件包使用。