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

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/

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

初始化授权Key

$ cat /var/jenkins_home/secrets/initialAdminPassword

b68e123s4f9bc54f3a9e0ec6ss12aea851

选择 安装推荐的插件

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

等待完成安装...

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

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

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

Jenkins 默认的URL地址

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

二、 开始使用Jenkins

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

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

  • CloudBees Docker Build and Publish
  • Generic Webhook Trigger Plugin
  • Date Parameter
    Jenkins + Coding 构建 Docker Image 并自动上传至Docker Registry
    Jenkins + Coding 构建 Docker Image 并自动上传至Docker Registry

勾选,安装完成重启Jenkins

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

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

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

登录后,创建第一个任务

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

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

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

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

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

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

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

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

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

配置Webhook 触发器

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

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

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

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

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

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

三、构建任务

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

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

查看构建任务

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

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

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

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

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

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

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

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

验证:

Git修改代码,进行push操作

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

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

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

至此,结束

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

上一篇:微信浏览器的html5页面显示配置等问题汇集(定点更新)


下一篇:css实现元素居中的几种方法