Assetic dump использует одну и ту же папку tmp для разных проектов Symfony2

У меня следующая среда: один веб-сервер Apache2 на компьютере с Ubuntu с тремя виртуальными хостами (по одному виртуальному хосту на проект). Все эти три проекта работают на Symfony2 (но разные версии, от 2.2 до 2.4). У каждого из проектов (и его путей) есть свой пользователь. Разворачиваю проекты с капифонией на этом сервере, у каждого своя квитанция.

Версия Sass Sass 3.2.14 (Media Mark)

Представьте, что я развертываю приложение 1 на веб-сервере. Когда процесс развертывания доходит до сброса всех производственных активов, он записывает временные сгенерированные файлы sass в следующую папку:

/tmp/600d657f6ac2358f30ba6bc0ab4cd7ffb6194ced

как пользователь1.

Если я сейчас развертываю приложение 2 на веб-сервере, сбрасывая активы, я хотел бы записать в ту же самую папку, на этот раз как user2, и возникает следующая ошибка:

Во время работы произошла ошибка: * [err :: 10.0.106.103] '/usr/bin/ruby' '/usr/local/bin/sass' '--load-path' '/srv/vhosts/myproject .com/releases/20140619124055/app/../web/sass' '--scss' '--cache-location' '/tmp' '/tmp/assetic_sassbsrcle' * [ошибка :: 10.0.106.103 ] * [err :: 10.0.106.103] Вывод ошибки: Errno::ENOENT: Нет такого файла или каталога - /tmp/600d657f6ac2358f30ba6bc0ab4cd7ffb6194ced/assetic_sassbsrclec20140619-27927-aw8xrk.lock

Мой обходной путь в настоящее время заключается в удалении этой папки /tmp/600d657f6ac2358f30ba6bc0ab4cd7ffb6194ced каждый раз перед развертыванием.

Я не нашел никакой конфигурации пути ни в квитанциях capifony, ни в конфигурационных файлах Symfony2 во всех проектах.

Любая помощь приветствуется.

Лучший, Рамо


person ramo    schedule 19.06.2014    source источник


Ответы (1)


На это также ссылались в официальном репозитории активов как на проблему. Поскольку вы можете установить sys_get_temp_dir() через переменную среды TMPDIR (среди прочего), я бы рекомендовал сделать это для вашего дампа. Вы можете основывать его на текущем времени Unix, или коммите, который вы развертываете, или комбинации приложения, времени и намерения. Действительно, все могло работать. Строка, отвечающая за настройку расположения кеша, : здесь, если вы хотите разветвить Assetic и изменить его, что также вполне выполнимо. Сначала я бы предложил маршрут TMPDIR, чтобы подтвердить потенциальное исправление.

Небольшое редактирование, есть также этот запрос для частичного решения этой проблемы.

person Shon M    schedule 28.09.2014