知世金融网专注于股票行情,期货开户,外汇储备等最新相关资讯信息提供投资者参考学习!

当前位置:网站首页 > 金融知识 > 科学问题 > 正文

阿里云邮箱注册(阿里云域名注册入口)

原创
文章作者
知世-金融领域资深作者
知名金融领域作者,从事金融超过十余年,在行业内有一定影响力。
金融风险管理师认证证书 常识职业资格认证 特许金融分析师 国际金融理财师认证证书
发布时间:2021-12-23 15:21:01 发布来源:知世金融网 文章点击:63

持续集成作为敏捷开发重要的一步,其目的在于让产品快速迭代的同时,尽可能保持高质量。每一次代码更新,都要通过自动化测试来检测代码和功能的正确性,只有通过自动测试的代...

目录

    本文标题阿里云邮箱注册(阿里云域名注册入口),作者:知世,本文有2649个文字,大小约为10KB,预计阅读时间7分钟,请您欣赏。知世金融网众多优秀文章,如果想要浏览更多相关文章,请使用网站导航的搜索进行搜索。本站虽然不乏优秀之作,但仅作为投资者学习参考。

    持续集成作为敏捷开发重要的一步,其目的在于让产品快速迭代的同时,尽可能保持高质量。每一次代码更新,都要通过自动化测试来检测代码和功能的正确性,只有通过自动测试的代码才能进行后续的交付和部署。本文主要介绍如何将时下最流行的持续集成工具之一的Jenkins结合阿里云容器服务,实现自动测试和镜像构建推送。

    接下来的演示是如何通过阿里云容器服务Jenkins实现自动测试和Docker镜像构建,实现高质量的持续集成。

    具体场景:每次代码提交到GitHub上的nodejs的项目中,阿里云容器服务Jenkins都会自动触发单元测试,测试通过则继续镜像构建及推送到目标镜像仓库中,最后邮件通知结果。大致流程如下图所示:

    slave-nodejs-ut是用来进行单元测试的slave节点。

    slave-nodejs-image-build是用来进行build镜像和推送镜像的slave节点。

    1.使用容器服务部署Jebkins

    1.1 创建Jenkins编排模版

    新建模版,以如下内容为基础,创建编排。

    jenkins:

    image: ‘registry.aliyuncs.com/acs-sample/jenkins:1.651.2-alpine’

    ports:

    – ‘8080:8080’

    – ‘50000:50000’

    volumes:

    – /var/lib/docker/jenkins:/var/jenkins_home

    privileged: true

    restart: always

    environment:

    – user=1000

    labels:

    aliyun.scale: ‘1’

    aliyun.probe.url: ‘tcp://container:8080’

    aliyun.probe.initial_delay_seconds: ’10’

    aliyun.routing.port_8080: jenkins

    1.2 创建Jenkins应用

    当然也可以直接使用阿里云提供的jenkins示例模版创建Jenkins应用。

    打开容器服务提供的访问端点,就可以使用刚刚部署的jenkins应用。

    Jenkins是基于Java开发的一种开源持续集成工具,监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点。Jenkins使用job来描述每一步工作,节点是用来执行项目的环境。Master节点是Jenkins job的默认执行环境,也是Jenkins应用本身的安装环境。

    2.Jenkins相关介绍

    2.1 master/slave

    master/slave相当于server和agent的概念。master提供web接口让用户来管理job和slave,job可以运行在master本机或者被分配到slave上运行。一个master可以关联多个slave用来为不同的job或相同的job的不同配置来服务。

    可以通过配置多个slave为不同项目准备单独的测试和构建环境。

    2.2 配置Jenkins插件

    如果代码托管在GitHub中,安装Git plugin和GitHub plugin来实现代码变更自动触发Jenkins job。

    如果直接安装不成功,可以通过
    http://updates.jenkins-ci.org/download/plugins/手动下载 .hpi文件安装。

    Tips: 本文中提到的Jenkins job和项目均指的是Jenkins一个构建单元,执行单元。

    3. 使用容器服务实现自动化测试

    3.1 创建slave-nodejs-ut镜像

    本示例在本地创建slave-nodejs-ut镜像,然后将镜像推送到容器服务Hub。

    首先在Dockerfile所在路径下执行如下命令创建镜像。

    docker build –t qinyujia-test/slave-nodejs-ut .

    Dockerfile如下:

    # Docker-in-Docker Jenkins Slave

    # See: https://github.com/tehranian/dind-jenkins-slave

    # See: https://dantehranian.wordpress.com/2014/10/25/building-docker-images-within-docker-containers-via-jenkins/

    # Following the best practices outlined in:

    # http://jonathan.bergknoff.com/journal/building-good-docker-images

    FROM evarga/jenkins-slave

    ENV DEBIAN_FRONTEND noninteractive

    # Adapted from: https://registry.hub.docker.com/u/jpetazzo/dind/dockerfile/

    # Let’s start with some basic stuff.

    RUN apt-get update -qq && apt-get install -qqy

    apt-transport-https

    ca-certificates

    curl

    lxc

    iptables &&

    rm -rf /var/lib/apt/lists/*

    RUN echo deb https://apt.dockerproject.org/repo ubuntu-trusty main > /etc/apt/sources.list.d/docker.list &&

    apt-key adv –keyserver hkp://p80.pool.sks-keyservers.net:80 –recv-keys 58118E89F3A912897C070ADBF76221572C52609D

    ENV DOCKER_VERSION 1.11.1-0~trusty

    # Install Docker from Docker Inc. repositories.

    RUN apt-get update && apt-get install -y docker-engine=$DOCKER_VERSION && rm -rf /var/lib/apt/lists/*

    ADD wrapdocker /usr/local/bin/wrapdocker

    RUN chmod +x /usr/local/bin/wrapdocker

    VOLUME /var/lib/docker

    # Make sure that the “jenkins” user from evarga’s image is part of the “docker”

    # group. Needed to access the docker daemon’s unix socket.

    RUN usermod -a -G docker jenkins

    # place the jenkins slave startup script into the container

    ADD jenkins-slave-startup.sh /

    CMD [“/jenkins-slave-startup.sh”]

    # Install nodejs for demo purpose

    RUN curl -sL https://deb.nodesource.com/setup | sudo bash –

    RUN apt-get install -y nodejs

    在容器服务主页选择镜像,新建镜像。

    输入仓库名称,设置代码源为本地仓库。

    通过如下指令将slave-nodejs-ut镜像推送到阿里云容器Hub。

    3.2 使用编排模版创建slave-nodejs-ut容器

    slave-nodejs-ut编排模版如下:

    slave-nodejs-ut:

    image: ‘registry.aliyuncs.com/qinyujia-test/slave-nodejs-ut’

    privileged: true

    restart: always

    labels:

    aliyun.scale: ‘1’

    3.3 将slave-nodejs-ut容器配置成Jenkins的slave节点

    打开Jenkins应用,进入系统设置界面,选择管理节点,新建节点,配置相应参数。如下图所示。

    Note1: 标签为slave的唯一标识。

    Note2: slave容器和Jenkins容器同时运行在阿里云平台上,因此填写外网访问不到的容器节点IP,隔离测试环境。

    Note3: 添加Credential的时候,使用创建slave-nodejs-ut镜像的Dockerfile里的Jenkins帐户和密码。

    3.4 创建项目实现自动化测试

    新建Item,选择构建一个自由风格的软件项目。

    填写项目名称,并选择项目运行节点,此示例填写上述准备的slave-nodejs-ut节点。默认情况下,Jenkins会使用master节点,也就是Jenkins运行主机作为项目运行节点,很可能因为缺少各种环境配置导致测试失败。即使能够执行成功,我们仍然更推荐使用slave节点来执行项目。

    配置源码管理和代码分支,此示例中源代码使用GitHub管理。

    配置构建触发器,此示例采用结合GitHub Webhooks & services实现自动触发项目执行。

    最后在GitHub中添加Jenkins的service hook,完成自动触发实现。

    在GitHub 项目主页点击settings tab,左侧菜单栏选择Webhooks & services, Add Service,下拉框中选择Jenkins(Git plugin)。

    在Jenkins hook url对话框中填写${Jenkins IP}/github-webhook/, eg:

    http://jenkins.cd****************.cn-beijing.alicontainer.com/github-webhook/

    增加Execute shell类型的构建步骤,编写shell脚本执行测试。

    本示例中的Command如下:

    pwd

    ls

    cd chapter2

    npm test

    4. 使用阿里云容器服务实现自动化构建,推送镜像

    本章节与章节3中相同的配置就不重复编写,重点说明需要注意的地方。

    4.1 使用阿里云容器服务创建slave-nodejs-image-build容器

    使用章节3中的模板和镜像,创建进行构建镜像,推送镜像的slave-nodejs-image-build容器。

    4.2 将slave-nodejs-image-build容器配置成Jenkins的slave节点

    打开Jenkins应用,进入系统设置界面,选择管理节点,新建节点,配置相应参数。如下图所示。

    4.3 创建项目实现自动构建,推送镜像

    执行job的节点配置为slave-nodejs-image-build。

    如果希望每次在单元测试成功之后再执行自动构建镜像,设置如下触发器。

    最后编写构建镜像和推送镜像的shell脚本。

    本示例的Command如下:

    cd chapter2

    docker build -t registry.aliyuncs.com/qinyujia-test/nodejs-demo .

    docker login -u ${yourAccount} -p ${yourPassword} registry.aliyuncs.com

    docker push registry.aliyuncs.com/qinyujia-test/nodejs-demo

    5. 自动重新布局应用

    5.1 首次部署应用

    使用编排模板,将章节4中创建的镜像部署到容器服务中,创建nodejs-demo应用。示例如下:

    express:

    image: ‘registry.aliyuncs.com/qinyujia-test/nodejs-demo’

    expose:

    – ’22’

    – ‘3000’

    restart: always

    labels:

    aliyun.routing.port_3000: express

    5.2 自动重新部署

    选择刚刚创建的应用nodejs-demo, 创建触发器。

    在章节4.3的shell脚本中添加一行,地址即为上文创建的触发器给出的触发器链接。

    curl ‘https://cs.console.aliyun.com/hook/trigger?triggerUrl=***==&secret=***’

    把4.3中的示例的Command改为:

    cd chapter2

    docker build -t registry.aliyuncs.com/qinyujia-test/nodejs-demo .

    docker login -u ${yourAccount} -p ${yourPassword} registry.aliyuncs.com

    docker push registry.aliyuncs.com/qinyujia-test/nodejs-demo

    curl ‘https://cs.console.aliyun.com/hook/trigger?triggerUrl=***==&secret=***’

    到此,镜像推送之后,Jenkins会自动触发重新部署nodejs-demo应用。

    6. 配置邮件推送结果

    如果希望单元测试或者镜像构建的结果能够通过邮件推送给相关开发人员或者项目执行发起者。可以通过如下配置来实现。

    首先在Jenkins主页,选择系统管理,系统设置,配置Jenkins系统管理员邮箱。

    安装Extended Email Notification plugin,配置SMTP server等相关信息,并设置默认邮件接收人列表。如下图所示。

    以上是Jenkins应用系统参数设置,下面是为需要用邮件推送结果的Jenkins项目进行相关配置。

    在Jenkins项目中添加构建后操作步骤,选择Editable Email Notification类型,填写邮件接收人列表。

    添加邮件发送触发器。

    7. 总结

    利用Docker镜像和Compose模版,容器服务就能快速创建自动测试和构建的环境,简化持续集成的环境搭建和扩展。容器服务提供的监控,日志,存储等功能,进一步为用户提供方便统一,功能完善的各种环境管理。

    本文相关推荐: 阿里巴巴对阿里健康四次资产注入,持股比例提升至64%

    以上便是知世金融网给大家分享的关于阿里云邮箱注册(阿里云域名注册入口)/xwzx/gppz/125660.html的相关信息了,希望能帮助到大家,更多金融相关信息,敬请关注知世金融网!

    网站内容均来自互联网,如侵害您的利益联系客服进行删除!

    (0)
    (0)

    上一篇:明星打榜在哪里打榜(追星女孩必备软件)

    下一篇:网站403怎么解决(网站403的解决办法)

    本文标题:阿里云邮箱注册(阿里云域名注册入口)

    本文地址:/index.php?s=article&c=search&keyword=%E9%9B%86%E6%88%90

    金融知名领域

    南方财富网 | 金融界 | 金融界 |

    更多推荐

    • 保险中介渠道佣金费用拟下调  产品预定利率下降直接影响佣金支出
      保险中介渠道佣金费用拟下调 产品预定利率下降直接影响佣金支出
    • 众信旅游出境游完全恢复仍需时日
      众信旅游出境游完全恢复仍需时日
    • 9月客运量低于2019年同期  国际航班计划量预计恢复七成
      9月客运量低于2019年同期 国际航班计划量预计恢复七成
    • 龙虎榜|光刻机造出来了?机构5.66亿天量资金抢筹,炒股养家1亿元打板
      龙虎榜|光刻机造出来了?机构5.66亿天量资金抢筹,炒股养家1亿元打板
    • 核心一级资本充足率低于行业,新规下破净的上海银行如何补充资本?| 银行
      核心一级资本充足率低于行业,新规下破净的上海银行如何补充资本?| 银行
    • 明星基金经理重仓股浮出水面,冯柳、董承非新进两家公司
      明星基金经理重仓股浮出水面,冯柳、董承非新进两家公司
    • 暑运国际机票较疫情前涨35%!上半年七大航司仅两家盈利 三大航亏损超百亿
      暑运国际机票较疫情前涨35%!上半年七大航司仅两家盈利 三大航亏损超百亿
    • 互动平台透露,获华为海思ICD授权 世纪鼎利股价8分钟冲上涨停板
      互动平台透露,获华为海思ICD授权 世纪鼎利股价8分钟冲上涨停板
    • 下周新股发行节奏继续放缓,重视研发投入成为3只新股的共性
      下周新股发行节奏继续放缓,重视研发投入成为3只新股的共性
    • 主力资金|北向资金全天净买入32.33亿元,终结连续13日净卖出态势
      主力资金|北向资金全天净买入32.33亿元,终结连续13日净卖出态势
    • 长城证券:近五年云南省偿债压力上升,总体略高于全国平均水平
      长城证券:近五年云南省偿债压力上升,总体略高于全国平均水平
    • 今日超大账户抢筹(减持)的50只股
      今日超大账户抢筹(减持)的50只股

    新闻资讯栏目

    站长QQ: 2397470084