2015-10-18 114 views
0

我正在嘗試使用HTTPS支持設置TeamCity服務器。爲此,我必須在…/conf/server.xml中指定密鑰庫文件路徑和密鑰庫密碼。如何在TeamCity的Tomcat配置(server.xml)中引用變量(JVM或環境)?

我現在的連接器定義有如下:

<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

TEAMCITY_SERVER_OPTS用來傳遞額外的JVM選項,但只有這樣做,當你運行teamcity-server.sh腳本。 configtest.sh是Tomcat發行版的一部分,在這種情況下不知道TeamCity變量。如果您有JAVA_OPTS而不是嘗試,你可以驗證:

export JAVA_OPTS="$JAVA_OPTS $TEAMCITY_SERVER_OPTS"

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

可選,你可以前的execcatalina.sh這一行添加到configtest.sh