如何在TeamCity的Tomcat配置(server.xml)中引用变量(JVM或环境)?

时间:2015-10-18 08:52:35

标签: tomcat teamcity teamcity-9.0

我尝试使用HTTPS支持设置TeamCity服务器。为此,我必须在…/conf/server.xml中指定密钥库文件路径和密钥库密码。

我当前的连接器定义如下:

<Connector 
    …(some more attributes here)…
    keystoreFile="${keystore.path}" keystorePassword="${keystore.pass}"/>

每当我运行env TEAMCITY_SERVER_OPTS="-Dkeystore.path='$KEYSTORE_PATH'" ./bin/configtest.sh时,我都会收到如下错误:

WARNING: configured file:[/home/app/teamcity/${keystore.path}] does not exist.

/home/app/teamcity/是解压缩TeamCity的地方) (KEYSTORE_PATH是一个正确定义的环境变量,我可以改写一个特定的值,结果是一样的)

这意味着,TEAMCITY_SERVER_OPTS并未真正用于为TeamCity服务器设置任意JVM选项,对吧?

如果是这样,我如何传递一些值并在配置中使用它们?我认为对它们进行硬编码很糟糕。

(如果这很重要,我在这里使用Ubuntu 14.04)

1 个答案:

答案 0 :(得分:1)

TEAMCITY_SERVER_OPTS用于传递其他JVM选项,但仅在运行teamcity-server.sh脚本时才会这样做。 configtest.sh是Tomcat发行版的一部分,在这种情况下不知道TeamCity变量。如果您尝试使用JAVA_OPTS,则可以验证:

env JAVA_OPTS="-Dkeystore.path='$KEYSTORE_PATH'" ./bin/configtest.sh

您可以选择在configtest.sh exec之前将此行添加到catalina.sh

export JAVA_OPTS="$JAVA_OPTS $TEAMCITY_SERVER_OPTS"