Jenkins Docker会话超时配置

tvz2xvvm  于 2023-03-29  发布在  Jenkins
关注(0)|答案(1)|浏览(204)

我正在尝试从Jenkins在此文件上配置SessionEvictionPolicy参数:/jenkins_home/war/WEB-INF/web.xml
该部分的当前配置为:

<session-config>
    <session-timeout>10800</session-timeout>
    <session-eviction>10800</session-eviction>
</session-config>

session-timeout得到了正确的值,但是session eviction没有!我想知道这是否是参数的正确名称:会话驱逐如果有人熟悉它,那将是伟大的!
先谢了!

3ks5zfa0

3ks5zfa01#

我的Jenkins服务器在Docker上运行。我已经将这个ENV部分添加到Dockerfile中:

ENV JENKINS_OPTS --httpPort=<some_value> --httpsPort=<some_value> 
--sessionTimeout=2880 --sessionEviction=172800

它将产生2天的长会话,而不是30分钟(这是Jenkins的默认值)。
请注意,如果您正在进行任何Docker继承,那么最后一个值是JENKINS_OPTS,它将影响您的Jenkins服务器!!
如果你想为Docker-Compose设置相同的值,你应该添加:

environment:
      - TZ=Asia/Jerusalem
      - "JENKINS_OPTS= --httpPort=<some_value> --httpsPort=<some_value> 
--sessionTimeout=2880 --sessionEviction=172800"

注意,如果你的Dockerfile和docker-compose上有JENKINS_OPTS,那么compose会覆盖Dockerfile的数据!
请注意,sessionTimeout的单位是分钟,而sessionEviction的单位是秒!
检查是否有效:在您的Jenkins上以管理员身份登录--〉管理Jenkins --〉脚本控制台

import org.kohsuke.stapler.Stapler;
sess = Stapler.getCurrentRequest().getSession();
printf("sessionTimeout: %d seconds\n", sess.getMaxInactiveInterval());
printf("sessionEviction: %d seconds\n", sess.getSessionHandler().getSessionCache().getEvictionPolicy());

相关问题