使用Openshift Jekyll Cartridge添加到PATH变量

时间:2014-10-31 05:47:04

标签: ruby environment-variables openshift jekyll

我想在Openshift上使用jekyll的pandoc markdown插件。这需要更改PATH变量,以便pandoc可执行文件可以放在$ OPENSHIFT_DATA_DIR中。我已经分叉jekyll cartridge并试图模仿在bin / setup中设置env的方式。

ruby​​路径元素设置如下:

dirname $(scl enable ruby193 "which ruby") > $env_dir/OPENSHIFT_RUBY_PATH_ELEMENT

所以,我试过这个:

dirname $(scl enable ruby193 "printenv OPENSHIFT_DATA_DIR") > $env_dir/OPENSHIFT_JEKYLL_PATH_ELEMENT

认为这可能算作红宝石墨盒,即使短名称是“jekyll”,我也尝试过:

dirname $(scl enable ruby193 "printenv OPENSHIFT_DATA_DIR") > $env_dir/OPENSHIFT_RUBY_PATH_ELEMENT

我也尝试过:

dirname echo $OPENSHIFT_DATA_DIR > $env_dir/OPENSHIFT_JEKYLL_PATH_ELEMENT
dirname echo $OPENSHIFT_DATA_DIR > $env_dir/OPENSHIFT_RUBY_PATH_ELEMENT

最后,在env/中,我使用以下行放置了文件OPENSHIFT_JEKYLL_PATH_ELEMENT.erb

<%= ENV['OPENSHIFT_DATA_DIR'] %>

我最后一次尝试此操作的原因是cartridge developer's guide

  

PATH变量由OpenShift设置,基数为/ etc / openshift / env / PATH。如果您提供OPENSHIFT_ {Cartridge-Short-Name} _PATH_ELEMENT,则在运行脚本或应用程序开发人员执行交互式登录时,OpenShift将包含构建PATH时的值。

SSH服务器并检查echo $PATH显示环境变量没有变化。我已经阅读了有关openshift和设置路径的other questions,我或者尝试上面的解决方案,或者找到一些方法来避免设置路径。

我迷路了......

1 个答案:

答案 0 :(得分:0)

这可能需要在您的应用程序的Action Hook中完成。基本上,您会将上述步骤附加到部署脚本,以查看是否可以更改$PATH值。