По умолчанию задача Capistrano deploy
создает символические ссылки из каталогов shared/log
, shared/system
и shared/pids
в каталог выпуска. Как я могу предотвратить это?
Как предотвратить создание символических ссылок Capistrano в «общем» каталоге при развертывании?
Ответы (2)
Если вы посмотрите на исходный код для разверните рецепт в строке 52, вы можете увидеть:
=========================================================================
These variables should NOT be changed unless you are very confident in
what you are doing. Make sure you understand all the implications of your
changes if you do decide to muck with these!
=========================================================================
...
_cset :shared_children, %w(system log pids)
...
Вот как определяются общие папки. Я полагаю, вы могли бы добавить следующую строку в свой рецепт capistrano, чтобы предотвратить символические ссылки на эти каталоги:
set :shared_children, %w()
Обновление: Что касается комментариев ниже: теперь с пограничной версией capistrano это должно работать. См. этот запрос на включение, чтобы сделать символические ссылки менее жестко запрограммированными.
person
HectorMalot
schedule
10.11.2011
Следуя вашему совету, я проверил исходный код, и кажется, что, хотя
:shared_children
позволяет вам изменять созданные каталоги, фактический бит символической ссылки выполняется каким-то грубым жестким кодированием: github.com/capistrano/capistrano/blob/
- person mjs; 10.11.2011
Хороший улов! Учит меня, что я должен был проверить свое предложение перед отправкой. Я предполагаю, что вы можете переопределить задачу
finalize_update
, чтобы предотвратить создание символических ссылок на эти каталоги, но это не похоже на правильный путь.
- person HectorMalot; 11.11.2011
Просто обратите внимание, что этот запрос на вытягивание попал в версию 2.10 (а не в версию 2.9). Возможно, вам потребуется обновить ваш capistrano с помощью: bundle update capistrano
- person Mike Schroll; 23.05.2012
Невозможно избежать этих символических ссылок; это делается довольно грубым (!) жестким кодированием в deploy.rb
Возможно, исправлено в capistrano 2.10; см. Как предотвратить создание Capistrano символические ссылки в `shared` каталоге при развертывании?.
person
mjs
schedule
16.11.2011