2012-05-23 1 views
0

Я пытаюсь получить номер сборки, доступный в экземпляре php. Я буду использовать его как тип «кеш-бастера» для статических активов (css, js). Есть ли способ получить его во время выполнения? Если нет, есть ли способ получить его во время сборки в сценарии postinstall?Есть ли способ получить номер сборки в среде или во время сборки для экземпляра php?

ответ

0

Я вижу пару способов, которыми вы могли бы это сделать.

  1. В /home/dotcloud/ каталоге кода является символической ссылкой на версию сборки, так, например мой код точек каталога в git-16ae997. В вашем сценарии postinstall, если вы получите имя этого каталога и сохраните его во временном файле, переменной env или, возможно, введете его в один из ваших конфигурационных скриптов, вы можете ссылаться на него из своей программы.

Подставляя это в вашем postinstall скрипт добавит переменную BUILD_VERSION к вашему .profile и быть доступны из $BUILD_VERSION в оболочке или других языках. Возможно, вам придется переустановить .profile после того, как вы сделаете это изменение, чтобы убедиться, что оно установлено.

$ echo "export BUILD_VERSION=`readlink /home/dotcloud/code`" >> /home/dotcloud/.profile 

$ echo $BUILD_VERSION 

С помощью PHP вы сможете получить его во время выполнения со следующей переменной.

$_ENV["BUILD_VERSION"] 
  1. Другой подход, который я использовал себя на других проектах, чтобы создать файл .version в постустановочных, что только включает в себя метку сборки, и ссылку, файл для build_version и использовать его в качестве кэш-памяти -buster. Проблема с этим подходом заключается в том, что он создается в postinstall, если вы масштабируете выше 1 экземпляра, скорее всего, вы получите разные временные метки для каждого экземпляра, и я предполагаю, что это не то, что вы хотите.

    $ дата '+% s'> /home/dotcloud/.version

Я бы придерживаться # 1, так как он работает при масштабировании, и это более Пролив вперед.

Надеюсь, что это поможет.

+0

Спасибо, что работало чудесно. Я закончил тем, что добавил его в свой сценарий postinstall, где я изменил свой файл конфигурации с текущим номером сборки. –