我已经将我的rails应用程序设置为在java容器(JBoss / wildfly)中的jruby / warbler下运行。我以前习惯在linux机器上运行我的rails应用程序,或多或少使用init.d脚本等,而且我一直在使用DATABASE_URL设置连接而不将我的凭据放在源代码中。
Warbler本身是一个预打包的WAR,我可以将它部署到wildfly(jboss)中。但是没有关于如何在该应用程序的上下文中设置环境变量的示例。
我已经使用google搜索链接了,但是它们很神秘,这里甚至还有堆栈溢出问题,但是接受的答案似乎是让你自己的服务来做这件事吗?
有没有一种简单的方法可以将配置传递给jboss中的战争?或者所有java企业应用程序都只是在战争中存储凭证/网址O.O
答案 0 :(得分:2)
您可以在应用程序服务器上设置数据源 https://docs.jboss.org/author/display/WFLY8/DataSource+configuration
在您的应用程序中,您将需要使用ActiveRecord-JDBC-Adapter https://github.com/jruby/activerecord-jdbc-adapter
或者您也可以在应用程序服务器的启动脚本(bin / standalone.sh或bin / domain.sh)中设置环境变量
答案 1 :(得分:1)
如果您正在使用Warbler(JRuby-Rack),则可以使用部署描述符中的上下文参数设置来隔离环境,例如:
<context-param>
<param-name>jruby.runtime.env</param-name>
<param-value>
DATABASE_URL=mysql://192.168.1.11/mydb
PATH=/usr/local/bin,HOME=/home/tomcat
</param-value>
</context-param>
使用Warbler的配置文件很容易设置(使用warble config
在 config / warbler.rb 生成一个)
https://github.com/jruby/jruby-rack/wiki/ENV-Isolation#warbler