2015-02-10 75 views
0

步骤:OPENSHIFT DIY Tomcat的墨盒setenv.sh脚本不拾取OPENSHIFT瓦尔

    在DIY
  • 希普利的 “学习Openshift” 一章
  • 跟着步骤创建一个DIY盒
  • 通过SSH在
  • 发送到应用程序根/数据
  • wget的..... Tomcat的8
  • 解压
  • 本身牛逼起来的conf /服务器
  • 设立的conf/tomcat的用户
  • 启动 - 工作 - 可以访问Tomcat主页

我想,以取代在conf硬编码地址和端口瓦尔斯/ server.xml文件与$ OPENSHIFT_DIY_IP和$ OPENSHIFT_DIY_PORT env vars。

当我只是直接把这些变量 - 它没有工作。

我已经知道,原因是$ OPENSHIFT_ * vars没有正确传递到JVM--这很好。

为了解决这个问题 - 我想我可以在bin/setenv.sh文件中添加几个部分,以便将它们捕获到我自己的变量中,然后在server.xml文件中使用我的变量,例如,

MY_IP = $ OPENSHIFT_DIY_IP MY_PORT = $ OPENSHIFT_DIY_PORT

我现在的问题是,上述表述并不里面setenv.sh工作

我可以从一个命令行终端会话中执行这些命令,并有$ MY_ * vars保留这些值,但是当它们放入setenv中并且运行./setenv.sh时 - vals以空弦出现。

建设性/有帮助的想法?

TIA

回答

0

当您运行直接运行它SETENV的MY_ *环境变量将只提供setenv脚本里面。

当您希望变量在setenv脚本之外可用时,您需要source setenv. setenv

如果您希望这些变量可用于从您的shell创建的子进程,则需要export您的环境变量。

+0

嗨马丁,谢谢 – 2015-02-10 20:26:44

+0

嗨马丁,感谢您的额外信息。我试图实现的是这个盒式磁带能够被移动到不同的节点(如果必须的话)而不需要手动编辑../conf/server.xml文件。我应该可以使用环境变量替换来实现这个功能....它不会在OS环境中工作....我只是遇到了一个小问题,在正确的语法/序列完成时一个OS设备。再次感谢。 – 2015-02-10 20:38:30

+0

如果您想知道他们如何在OpenShift上进行变量替换,请查看以下脚本:https:// github。com/openshift/origin-server/blob/master/cartridges/openshift-origin-cartridge-jbossews/bin/tomcat lines 58 - 87。 – MartinB 2015-02-12 18:33:49