我尝试使用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)
答案 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"