zoukankan      html  css  js  c++  java
  • Jenkins + Coding 构建 Docker Image 并自动上传至Docker Registry

    Jenkins + Coding 构建 Docker Image 并自动上传至Docker Registry

    一、Jenkins安装

    • 基于docker 安装 jenkins

    由于官方jenkins无法执行docker命令,再次构建以下,将jenkins加入docker组可以使用docker相关命令

    $ cat Dockerfile

    FROM jenkins/jenkins:lts
    
    USER root
    RUN groupadd -g 999 docker
    RUN gpasswd -a jenkins docker
    
    USER jenkins
    

    构建新镜像

    docker build -f ./Dockerfile -t jenkins/jenkins:lts-v1.0 .
    

    完整的compose文件

    $ cat docker-compose-jenkins.yml

    version: "2.2"
    services:
      jenkins:
        image: jenkins/jenkins:lts-v1.0
        ports:
          - "9090:8080"
          - "50000:50000"
        volumes:
          - /datafile/jenkins/home:/var/jenkins_home
          - /var/run/docker.sock:/var/run/docker.sock
          - /etc/timezone:/etc/timezone
          - /etc/localtime:/etc/localtime
          - /usr/bin/docker:/usr/bin/docker
        mem_limit: 8g
        restart: always
        networks:
          - monitoring
    
    networks:
      monitoring:
        driver: bridge
    

    启动服务Jenkins

    docker-compose -f docker-compose-jenkins.yml up -d
    

    启动完成后浏览器打开URL

    http://IP:9090/
    

    初始化授权Key

    $ cat /var/jenkins_home/secrets/initialAdminPassword

    b68e123s4f9bc54f3a9e0ec6ss12aea851
    

    选择 安装推荐的插件

    等待完成安装...

    安装完成后 创建第一个管理员用户

    Jenkins 默认的URL地址

    二、 开始使用Jenkins


    安装所需的插件,Manage Jenkins(系统管理)——> Manage Plugins(插件管理)

    • CloudBees Docker Build and Publish
    • Generic Webhook Trigger Plugin
    • Date Parameter

    勾选,安装完成重启Jenkins

    重新登录,输入刚才创建的admin用户

    登录后,创建第一个任务

    任务名 以【Test-1】为例,构建一个自由风格的软件项目

    定义Tag名为今日的日期,这里定义一个日期变量,用于后面获取当日的日期(年-月-日)

    Git源码管理,配置coding的git地址,这里使用用户名密码的方式认证,并添加coding的用户信息



    默认git clone 超时时间是10分钟,如果clone项目较大,时间超过10分钟无法clone完成,这里可以调整超时时长

    配置Webhook 触发器

    构建过程,由于我的docker仓库使用的是阿里云的【容器镜像服务】 ,以下配置均按照阿里云地址说明

    高级配置,指定工作目录,以及Dockerfile文件位置,我的git目录格式如下

    MyGitDir
    └── test
        ├── 1.txt
        ├── Dockerfile
        └── nginx_test
            ├── nginx.conf
            └── test.txt
    

    三、构建任务

    手动触发构建,由于配置了日期参数需要手动点击一下,后面通过webhook或者接口构建者不需要

    查看构建任务


    构建完成。构建完成后docker image将自动推送至阿里云镜像仓库,可以登录阿里云 容器镜像服务 到对应的仓库去查看新版image

    配置Coding,当有push或者merge操作自动触发jenkins构建任务

    登录coding,进入项目—>设置(项目右下角)——>开发者选项——>Service Hook——>新建Service Hook


    服务URL是在配置Jenkins Webhook 触发器时的URL,接口地址修改成自己的jenkins地址,Token也是jenkins配置时指定的

    验证:

    Git修改代码,进行push操作

    git add 1.txt
    git commit -m "zongxiang test"
    git push
    

    返回Jenkins自动有任务开始构建

    至此,结束

    —— Share every essays ——
  • 相关阅读:
    C#文件下载(实现断点续传)
    C#winform实现跑马灯
    Asp.net GridView转换成DataTable
    SQL Server 索引重建脚本
    SQL SERVER数据库维护与重建索引
    python try except 出现异常时,except 中如何返回异常的信息字符串
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 0: invalid continuation byte
    bower 安装依赖提示 EINVRES Request to https://bower.herokuapp.com/packages/xxx failed with 502
    EINVRES Request to https://bower.herokuapp.com/packages/ failed with 502
    使用notepad++插件远程编辑linux下的配置文件
  • 原文地址:https://www.cnblogs.com/zongxiang/p/14770075.html
Copyright © 2011-2022 走看看