У меня возникли проблемы с развертыванием моего приложения laravel в bluemix с использованием laravel 4.2 и 5.0.
Это ошибка в журналах блюмикса:
2015-05-01T16:52:49.71+0100 [STG/0] ERR [UnexpectedValueException]
2015-05-01T16:52:49.71+0100 [STG/0] ERR Could not parse version constraint ^1.2.2: Invalid version string “^1.2.2″
2015-05-01T16:52:49.71+0100 [STG/0] ERR install [–prefer-source] [–prefer-dist] [–dry-run] [–dev] [–no-dev] [–no-plugins] [–no-custom-installers] [–no-scripts] [–no-progress] [-v|vv|vvv|–verbose] [-o|–optimize-autoloader] [–ignore-platform-reqs] [packages1] … [packagesN]
2015-05-01T16:52:49.73+0100 [STG/0] OUT —–> Composer command failed
2015-05-01T16:52:49.73+0100 [STG/0] ERR Traceback (most recent call last):
2015-05-01T16:52:49.73+0100 [STG/0] ERR File “/tmp/buildpacks/php-buildpack/scripts/compile.py”, line 51, in
2015-05-01T16:52:49.73+0100 [STG/0] ERR .from_build_pack(‘lib/additional_commands’)
2015-05-01T16:52:49.73+0100 [STG/0] ERR File “/tmp/buildpacks/php-buildpack/lib/build_pack_utils/builder.py”, line 189, in extensions
2015-05-01T16:52:49.73+0100 [STG/0] ERR process_extension(path, ctx, ‘compile’, process, args=[self])
2015-05-01T16:52:49.73+0100 [STG/0] ERR File “/tmp/buildpacks/php-buildpack/lib/build_pack_utils/utils.py”, line 69, in process_extension
2015-05-01T16:52:49.73+0100 [STG/0] ERR success(getattr(extn, to_call)(*args))
2015-05-01T16:52:49.73+0100 [STG/0] ERR File “/tmp/buildpacks/php-buildpack/extensions/composer/extension.py”, line 359, in compile
2015-05-01T16:52:49.73+0100 [STG/0] ERR return composer.compile(install)
2015-05-01T16:52:49.73+0100 [STG/0] ERR File “/tmp/buildpacks/php-buildpack/lib/extension_helpers.py”, line 154, in compile
2015-05-01T16:52:49.73+0100 [STG/0] ERR self._compile(install)
2015-05-01T16:52:49.73+0100 [STG/0] ERR File “/tmp/buildpacks/php-buildpack/extensions/composer/extension.py”, line 162, in _compile
2015-05-01T16:52:49.73+0100 [STG/0] ERR self.run()
2015-05-01T16:52:49.73+0100 [STG/0] ERR File “/tmp/buildpacks/php-buildpack/extensions/composer/extension.py”, line 244, in run
2015-05-01T16:52:49.73+0100 [STG/0] ERR *self._ctx[‘COMPOSER_INSTALL_OPTIONS’])
2015-05-01T16:52:49.73+0100 [STG/0] ERR File “/tmp/buildpacks/php-buildpack/extensions/composer/extension.py”, line 289, in run
2015-05-01T16:52:49.73+0100 [STG/0] ERR shell=True)
2015-05-01T16:52:49.73+0100 [STG/0] ERR File “/tmp/buildpacks/php-buildpack/lib/build_pack_utils/runner.py”, line 109, in stream_output
2015-05-01T16:52:49.73+0100 [STG/0] ERR raise CalledProcessError(retcode, cmd)
2015-05-01T16:52:49.73+0100 [STG/0] ERR build_pack_utils.runner.CalledProcessError: Command ‘<open file '’, mode ‘w’ at 0x28b9420>’ returned non-zero exit status 1
2015-05-01T16:52:49.76+0100 [STG/0] OUT Staging failed: Buildpack compilation step failed
2015-05-01T16:52:50.02+0100 [API/3] ERR Encountered error: App staging failed in the buildpack compile phase
Вот где это терпит неудачу в файле composer.lock:
“require”: {
“nikic/php-parser”: “^1.2.2″,
“php”: “>=5.3.3″,
“symfony/console”: “~2.1″,
“symfony/filesystem”: “~2.1″,
“symfony/finder”: “~2.1″
},
Тот ^1.2.2
это то, на что он жалуется. Любые предложения о том, как это исправить? Заранее спасибо.
Какую версию PHP buildpack вы используете? Вы можете попробовать его с последней версией сообщества, нажав на ваше приложение с -b https://github.com/cloudfoundry/php-buildpack
вариант.
Я знаю, что в более ранней версии buildpack (v3.1.0) вам действительно нужно было указать специальный атрибут COMPOSER_VERSION в файле, который вы отправляете с приложением с именем options.json
Пример options.json:
{
"PHP_EXTENSIONS": [ "bz2", "zlib", "openssl", "fpm", "tokenizer", "curl", "mcrypt", "mbstring", "pdo"],
"PHP_VERSION": "PHP_55_LATEST",
"COMPOSER_VENDOR_DIR":"htdocs/vendor",
"COMPOSER_VERSION": "latest",
"WEBDIR": "htdocs/public"}
источник: https://github.com/cloudfoundry/php-buildpack/issues/47#issuecomment-82972562
Более подробную информацию об этом файле конфигурации можно найти по адресу https://github.com/cloudfoundry/php-buildpack/blob/master/docs/config.md
Ты можешь бежать composer update
локально, чтобы убедиться, что ваш composer.lock обновлен. Также убедитесь, что вы не отправляете composer.phar в Bluemix. Вы можете остановить передачу любых файлов в Bluemix, создав .cfignore
файл в корне вашего кода, а затем добавьте имя файла / каталога, который вы не хотите загружать в этот файл.
Спасибо за ваши ответы. У меня есть файл .cfignore, и я действительно использовал v3.1.0.
В любом случае, как временное исправление, я заменил все ^ на> = < соответствующие значения, хотя с более новыми версиями buildpack не должны быть необходимыми.
Кроме того, версия PHP должна быть обернута вокруг {}, чтобы bluemix мог ее правильно подобрать: «PHP_VERSION»: «{PHP_55_LATEST}»
Спасибо