Я пытаюсь настроить Jenkins в Tomcat7 на Ubuntu. Я установил Tomcat7 и развернул jenkins.war
, и теперь я вижу домашнюю страницу Jenkins по адресу http://myhost:8080/jenkins
, но он пытается создать каталог Jenkins по адресу /usr/share/tomcat7/.jenkins
, чего нельзя сделать по соображениям безопасности. Я уже создал /srv/jenkins
и учитывая tomcat7
разрешения группы и хотите установить JENKINS_HOME
на этот путь. Я пробовал добавить его в конфигурацию tomcat в /etc/tomcat7/server.xml
:
<GlobalNamingResources>
<Environment name="JENKINS_HOME" value="/srv/jenkins"
type="java.lang.String" override="false"/>
<!-- Default settings -->
И я также попытался добавить его в автоматически созданный файл контекста в ROOT/META-INF/context.xml
(здесь нет $CATALINA_HOME/conf
насколько я могу судить).
<Context path="/"
antiResourceLocking="false" >
<Environment name="JENKINS_HOME" value="/srv/jenkins/" type="java.lang.String"/>
</Context>
Но даже после перезапуска tomcat7 я все равно получаю тот же результат (пытаясь использовать /usr/share/tomcat7/.jenkins
).
Где мне нужно установить переменную среды для JENKINS_HOME
в Tomcat7?
Я установил это в /etc/default/tomcat7
. Для вашего примера добавьте эту строку:
JENKINS_HOME=/srv/jenkins
Это не совсем то решение, которое я предпочитаю, но я создал /usr/share/tomcat7/bin/setenv.sh
сценарий, как описано в catalina.sh
.
#!
export JENKINS_HOME=/srv/jenkins
И, конечно, дал ему права на выполнение с chmod ugo+x setenv.sh
.
Подход с символической ссылкой, когда мои данные jenkins попадают в резервную файловую систему.
[root@lx08 tomcat6]# ln -s /data01/jenkins .jenkins
[root@lx08 tomcat6]# ls -la
total 12
drwxrwxr-x 3 root root 4096 Dec 27 13:00 .
drwxr-xr-x. 181 root root 4096 Dec 27 11:28 ..
drwxr-xr-x 2 root root 4096 Dec 27 11:28 bin
lrwxrwxrwx 1 root tomcat 12 Dec 27 11:28 conf -> /etc/tomcat6
lrwxrwxrwx 1 root root 15 Dec 27 13:00 .jenkins -> /data01/jenkins
lrwxrwxrwx 1 root root 23 Dec 27 11:28 lib -> /usr/share/java/tomcat6
lrwxrwxrwx 1 root root 16 Dec 27 11:28 logs -> /var/log/tomcat6
lrwxrwxrwx 1 root root 23 Dec 27 11:28 temp -> /var/cache/tomcat6/temp
lrwxrwxrwx 1 root root 24 Dec 27 11:28 webapps -> /var/lib/tomcat6/webapps
lrwxrwxrwx 1 root root 23 Dec 27 11:28 work -> /var/cache/tomcat6/work
[root@lx08 tomcat6]# pwd
/usr/share/tomcat6
[root@lx08 tomcat6]# export JENKINS_HOME=http://localhost:8080/jenkins
[root@lx08 tomcat6]# java -jar /usr/share/tomcat6/webapps/jenkins/WEB-INF/lib/jenkins-core-1.495.jar "TestJob" echo hello
hello
Более простой способ - отредактировать дескриптор контекста сервлета Tomcat ($ CATALINA_HOME / conf / config.xml) и добавить следующую строку:
<Context ...>
<Environment name="JENKINS_HOME" value="/path/to/jenkins_home/" type="java.lang.String"/>
</Context>
Просмотрено в https://wiki.jenkins-ci.org/display/JENKINS/Tomcat
Согласно документации, которую я прочитал, и нескольким примерам выше, Jenkins использует домашний каталог пользователя Tomcat и ищет в этой папке .jenkins. Убедитесь, что для домашнего каталога вашего пользователя Tomcat задано ожидаемое значение, например / opt / apache / tomcat, и создайте в этой папке символическую ссылку .jenkins, указывающую на то, где находится ваша папка Jenkins.
ln -s /path/to/jenkins_home /opt/apache/tomcat/.jenkins