Estou tentando executar um agente de compilação TeamCity (padrão) com java de 32 bits no Ubuntu 64 bits, criei um [TeamCity] /bin/setenv.sh que contém:
JAVA_HOME=/usr/lib/jvm/ia32-java-6-sun
Isso funciona bem executando o servidor com jre de 32 bits, mas não para o agente: eu tentei estas linhas em [buildAgent] /conf/buildAgent.properties
JAVA_HOME=/usr/lib/jvm/ia32-java-6-sun
JRE_HOME=/usr/lib/jvm/ia32-java-6-sun/jre
e também um link '[buildAgent] / jre'
[buildAgent]/jre -> /usr/lib/jvm/ia32-java-6-sun/jre/
quando eu faço um '[TeamCity] /bin/runAll.sh start' eu recebo isto:
Using CATALINA_BASE: /srv/TeamCity
Using CATALINA_HOME: /srv/TeamCity
Using CATALINA_TMPDIR: /srv/TeamCity/temp
Using JRE_HOME: /usr/lib/jvm/ia32-java-6-sun
Using CLASSPATH: /srv/TeamCity/bin/bootstrap.jar:/srv/TeamCity/bin/tomcat-juli.jar
Starting TeamCity build agent...
Java executable is found in '/usr/bin/..'.
Starting TeamCity Build Agent Launcher...
Agent home directory is /srv/TeamCity/buildAgent
Current Java runtime version is 1.6
Lock file: /srv/TeamCity/buildAgent/logs/buildAgent.properties.lock
Using no lock
Done [16436], see log at ../logs/teamcity-agent.log
Como você pode ver na saída, o servidor está usando jdk de 32 bits, mas o agente de compilação está executando o java encontrado em '/ usr / bin' (que é de 64 bits no meu caso).
Uma inspeção mais detalhada do '[buildAgent] /bin/findJava.sh', parece que o script executa um 'which java' e localiza o sistema java padrão antes mesmo de tentar qualquer um dos argumentos / pastas fornecidos. Eu acho que deveria encontrar '[buildAgent] / jre' antes do sistema java.
Qual é a maneira correta de especificar a versão java a ser usada para um agente de compilação, que pode ser uma versão diferente do servidor?
Devo apenas modificar o findJava.sh para verificar seus argumentos antes de verificar o caminho do sistema para o java?