侧边栏壁纸
博主头像
惬意小蜗牛博主等级

海内存知己,天涯若比邻!

  • 累计撰写 54 篇文章
  • 累计创建 143 个标签
  • 累计收到 59 条评论

目 录CONTENT

文章目录

Jenkins系统时间不正确的解决办法

惬意小蜗牛
2021-07-02 / 0 评论 / 2 点赞 / 2,217 阅读 / 519 字 / 正在检测是否收录...

1. 临时解决方案

一般安装部署好 jenkins 后可能会出现如下图这种时间不正确的情况,解决办法很简单不需要重启即可

  1. 打开脚本命令行
    file

  2. 在命令行输入框中输入以下命令,并点击 “运行” 按钮, 后续注意观察右下角,时间显示的变化

    System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
    

2. 永久解决方案

k8s yaml 部署方式

  • 增加 env 环境配置

    -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai -Djava.awt.headless=true -Duser.timezone=GMT+08
    
  • 同时需要注意 k8s 运行的 pod 时区是否正确如果不正确则需要调整对应的 yaml 部署文件, 主要需要修改以下 ① ② ③ 的内容

# jenkins

---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: jenkins
  labels:
    name: jenkins
spec:
  serviceName: jenkins
  replicas: 1
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      name: jenkins
      labels:
        name: jenkins
    spec:
      terminationGracePeriodSeconds: 10
      serviceAccountName: jenkins
      tolerations:
      - operator: "Exists"
      containers:
        - name: jenkins
          image: jenkins:lts-alpine
          imagePullPolicy: IfNotPresent
          ports:
          - name: web
            containerPort: 80
            hostPort: 80
          env:
            - name: LIMITS_MEMORY
              valueFrom:
                resourceFieldRef:
                  resource: limits.memory
                  divisor: 1Mi
            #主要修改 ① 增加宿主机的时区挂载
            - name: JAVA_OPTS
              value: -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai -Dfile.encoding=UTF-8 -Djava.awt.headless=true
          volumeMounts:
            - name: jenkins-home
              mountPath: /var/jenkins_home
            #主要修改 ② 增加宿主机的时区挂载
            - name: timezone
              mountPath: /etc/localtime
      securityContext:
        fsGroup: 1000
      #主要修改 ③ 增加宿主机的时区挂载
      volumes:
        - name: timezone
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai

Docker 部署方式

  • 修改已运行的 docker 配置

    用命令查看docker的时区,cat /etc/timezone

    # 查看系统的时区
    [root@node01 ~]# cat /etc/timezone 
    Asia/Shanghai
    
    # 进入容器
    [root@node01 ~]# docker exec -it -u root jenkins bash
    
    # 查看容器时区
    root@node01:/# cat /etc/timezone 
    Etc/UTC
    
    #修改容器时区
    root@node01:/# echo  'Asia/Shanghai' > /etc/timezone
    root@node01:/# exit
    
    # 重启容器
    [root@node01 ~]# docker restart jenkins
    
  • 初次 Docker 运行, 建议起容器的时候,把本机的/etc/timezone映射进去。【或者采用 -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai】

docker run --name jenkins --restart=always \
--network=host \
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
-v /var/jenkins_home:/var/jenkins_home \
-v /data/jdk:/data/jdk \
-v /etc/localtime:/etc/localtime \
-d jenkins
2

评论区