我正在尝试在php实例中获取内部版本号。我将它用作静态资产(css,js)的一种“缓存 - 破坏者”。有没有办法在运行时获取它? 如果没有,有没有办法在构建时在postinstall脚本中获取它?
答案 0 :(得分:0)
我看到了几种可以做到这一点的方法。
/home/dotcloud/
中,代码目录是构建版本的符号链接,因此例如我的代码目录指向git-16ae997
。在postinstall
脚本中,如果您获得该目录的名称并将其存储在临时文件,env变量中,或者可能将其注入您的一个配置脚本中,您可以从您的程序中引用它。将此内容添加到postinstall
脚本中会将BUILD_VERSION
变量添加到.profile
,并以$BUILD_VERSION
的形式在shell或其他语言中提供给您。您可能需要在进行更改后重新提供.profile
来确保它已设置。
$ echo "export BUILD_VERSION=`readlink /home/dotcloud/code`" >> /home/dotcloud/.profile
$ echo $BUILD_VERSION
使用PHP,您应该能够在运行时使用以下变量获取它。
$_ENV["BUILD_VERSION"]
我在其他项目中使用的另一种方法是在postinstall中创建.version文件,该文件只包含构建的时间戳,并引用该文件作为build_version并将其用作缓存破坏程序。这种方法的问题是因为它是在postinstall
创建的,如果你扩展到1个以上的实例,你很可能最终得到每个实例的不同时间戳,我猜这不是你想要的。< / p>
$ date'+%s'&gt; /home/dotcloud/.version
我会坚持使用#1,因为它可以在你扩展时起作用,并且它更加紧张。
希望有所帮助。