2013-07-20 1 views
0

Итак, мой вопрос прост: можем ли мы установить путь к файлам кеша symfony2 во время кеширования : очистить, можем ли мы изменить его позже или сделать его относительным? Или что-нибудь ?Задайте путь к файлам кеша symfony2 во время кеша: clear

Объяснение:

Я развертывание приложения Symfony2 на Heroku, используя вилку развилки heroku-buildpack-php-tyler: heroku-buildpack-symfony2.

На развертывании платформа получает GIT толчок к случайному временному расположению говорит /tmpXXXX/ для компиляции/установок/и т.д..

После компиляции он сохраняет содержимое /tmpXXXX/, как «zip install» приложения, чтобы легко развернуть его в других экземплярах. Затем приложение запускается в каталог /app/ новых экземпляров при запуске.

Проблема, если мы запускаем кэша: четкое до конца компиляции, путь файлов кэша выбрасывается из /tmpXXXX/ места ... Преодолевая все.

Таким образом, поворот состоит в том, чтобы разогреть кеш во время запуска, и он работает, но он занимает больше 60 секунд, и на герою, если ваше приложение загружается более чем на 60 секунд, it gets rebooted и вы получите сообщение об ошибке.

ответ

1

Я отвечаю на мой собственный вопрос, как я сделал для него пр на CCH/Heroku buildpack

Простой sed сделал трюк, как в этом file.

код выглядит следующим образом:

find $CACHE_DIR/app/cache/prod -type f -exec sed -i "[email protected][email protected][email protected]" {} \; | indent 
0

Вы можете создать custom Symfony environment called "deploy" для развертывания, а затем override the different cache folders.

После того, как у вас есть новое окружение (под названием «развернуть» в примере ниже), вы можете переопределить метод getCacheDir класса app/AppKernel.php к чему-то вроде этого

public function getCacheDir() 
{ 
    if ($this->environment === "deploy") { 
     return '/the/path/to/your/symfony/cache/'.$this->environment; 
    } else { 
     return $this->rootDir.'/cache/'.$this->environment; 
    } 
} 

Убедитесь, что среда доступна только локально доверенными пользователями.

+0

Полезная идея! Но thad также означало бы, что мои файлы кеша будут сброшены в/app/app/cache/и что мне придется копировать их обратно в локальный каталог до конца компиляции контейнера. Я подумаю об этом. – Azr

0

Есть обсуждение & правильных решений для этого здесь происходит ...

https://github.com/heroku/heroku-buildpack-php/issues/64

https://github.com/symfony/symfony/pull/10999

И новый buildpack с исправлением (Я попробую сейчас)

https://github.com/CHH/heroku-buildpack-php/pull/67

+0

Эй, да, исправление, которое я сделал, все еще там! – Azr

Смежные вопросы