有没有办法在环境中或在构建时为php实例获取构建号?

时间:2012-05-23 04:37:46

标签: dotcloud

我正在尝试在php实例中获取内部版本号。我将它用作静态资产(css,js)的一种“缓存 - 破坏者”。有没有办法在运行时获取它? 如果没有,有没有办法在构建时在postinstall脚本中获取它?

1 个答案:

答案 0 :(得分:0)

我看到了几种可以做到这一点的方法。

  1. /home/dotcloud/中,代码目录是构建版本的符号链接,因此例如我的代码目录指向git-16ae997。在postinstall脚本中,如果您获得该目录的名称并将其存储在临时文件,env变量中,或者可能将其注入您的一个配置脚本中,您可以从您的程序中引用它。
  2. 将此内容添加到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"]
    
    1. 我在其他项目中使用的另一种方法是在postinstall中创建.version文件,该文件只包含构建的时间戳,并引用该文件作为build_version并将其用作缓存破坏程序。这种方法的问题是因为它是在postinstall创建的,如果你扩展到1个以上的实例,你很可能最终得到每个实例的不同时间戳,我猜这不是你想要的。< / p>

      $ date'+%s'&gt; /home/dotcloud/.version

    2. 我会坚持使用#1,因为它可以在你扩展时起作用,并且它更加紧张。

      希望有所帮助。