jenkins容器部署定时构建于本地时间不一致

1. Dockerfile

FROM jenkins/jenkins:2.411-jdk11
USER root
#以下生成密钥方式为旧格式,因为新格式暂不能被"Publish over SSH--->Jenkins SSH Key"功能识别
RUN ssh-keygen -q -m PEM -t rsa -b 2048  -N '' -f /root/.ssh/id_rsa
ADD ./apache-maven-3.6.3-bin.tar.gz /usr/local/
ADD ./jdk1.8.0_221.tar.gz /usr/local
#配置maven全局环境变量
RUN echo  "export MAVEN_HOME=/usr/local/apache-maven-3.6.3 \n export PATH=\$MAVEN_HOME/bin:\$PATH:/opt/java/openjdk/bin" >> /etc/profile
RUN echo "source /etc/profile" >> /root/.bashrc

2. docker-compose

version: "3.5"
services:
  jenkins:
    image: harbor.od.com/jenkins/jenkins-ssh-mvnset:v2.411
    ports:
      - 8081:8080
      - 50000:50000
    restart: "always"
    container_name: jenkins
    environment:
      JAVA_OPTS: "-Duser.timezone=Asia/Shanghai"
      JAVA_OPTS: "-server -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m"
# 配置访问路径,不然访问404      
      JENKINS_OPTS: "--prefix=/jenkins"
      JENKINS_ARGS: "--prefix=/jenkins"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /docker-compose/jenkins/jenkins_home:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
      - /docker-compose/jenkins/shell:/shell
    privileged: true

3. 定时构建(类似于crontab)

在这里插入图片描述

分散负载应该用 ‘H 15 * * *’ 而不是 ‘46 15 * * *
提示"H"的意思是哈希,比如有很多工程都在同一时间去定时构建,系统认为会对负载有一定影响,使用"H"同样
还是会生效,就是避开系统高峰期执行,如果某工程必须在某一个点执行可以用"H(30-31) 15 * * *"来表示

在这里插入图片描述

4. 问题现象

在这里插入图片描述

当我们运行容器后,设置了定时任务但是发现执行时间于本地时间不一致,我设置17点定时构建,
但是实际的执行是在凌晨

5. 处理方式

5.1 查看jenkins环境内容:系统管理–> 系统信息–> user.timezone查看时区为(Etc/UTC)

在这里插入图片描述

Etc/UTC是协调世界时(Coordinated Universal Time)的一个时区,
也被称为格林威治平均时间(Greenwich Mean Time)或世界标准时间。
Asia/Shanghai则是中国上海所在的时区,在东八区,UTC+8(北京时间)。

Etc/UTC时区表示的是全球的标准时间,没有时区偏移和夏令时调整,
Asia/Shanghai时区表示的是中国上海的本地时间,在东八区,不考虑夏令时。
5.2 挂载/etc/timezone文件至容器
#需要确认宿主机的timezone时区是否东八区
[root@zabbix jenkins]# cat /etc/timezone 
Asia/Shanghai

#docker-compose增加挂载文件,定时构建就和本地时间保持一致了
    volumes:
      - /etc/timezone:/etc/timezone

在这里插入图片描述

Jenkins是一个开源的自动化构建工具,它可以与Docker容器部署结合使用。在使用Jenkins进行容器部署时,可以通过以下步骤构建代码: 1. 安装Jenkins:首先,需要在服务器上安装并配置Jenkins。可以通过官方网站下载最新版本的Jenkins并按照指示进行安装。 2. 配置Jenkins:安装完成后,需要通过网页界面进行Jenkins的初始化配置。在其,可以设置管理员账号、插件安装等参数。 3. 创建新项目:在Jenkins的主面板,选择“新建项目”来创建一个新的构建项目。根据实际需求,可以选择不同的项目类型,如自由风格、流水线等。 4. 配置源码管理:在创建项目后,需要进行源码管理的配置。可以选择使用Git、SVN等版本控制工具管理代码,输入相应的仓库地址和认证信息。 5. 配置构建步骤:在项目配置,需要添加构建步骤。点击“添加构建步骤”按钮,选择要执行的命令或脚本。对于容器部署,可以选择执行Docker相关的命令,如构建镜像、推送镜像等。 6. 构建触发器:如果需要定期触发构建或根据代码仓库的变化触发构建,可以在项目配置添加构建触发器。可以选择定时构建、轮询SCM等方式。 7. 保存并启动构建:当配置完成后,点击保存按钮。在项目主页,点击立即构建按钮手动启动构建,或等待触发器自动触发构建。 8. 查看构建结果:构建过程可以在Jenkins的控制台输出查看。构建完成后,可以查看构建报告和日志文件以获得详细的构建结果和日志信息。 通过以上步骤,可以使用Jenkins搭建容器部署流水线,实现自动化构建部署的过程。这样可以提高开发效率,减少人工操作的复杂性和错误。同时,Jenkins也提供了丰富的插件和扩展功能,可以根据需求进行灵活的定制和集成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值