• Azure DevOps (十) 通过流水线完成Docker镜像的部署


    上一篇文章中,我们通过azure的流水线完成了镜像推送到镜像仓库中去,本篇文章我们继续开始完成下一步,通过流水线把镜像从仓库拉取到任意一台公网的服务器上去,

    完成镜像部署的闭环。

    文章配套视频专栏:

    https://space.bilibili.com/38649342/channel/seriesdetail?sid=2267536

    首先我们需要先准备一下部署的环境,我们先找一台服务器在上面安装一下docker的容器引擎,我的用系统版本是centos的,这里贴一下安装命令。

    复制代码
    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
    sudo yum install -y yum-utils
    
    sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    
    sudo yum install docker-ce docker-ce-cli containerd.io
    复制代码

    执行完命令之后,执行一下systemctl start docker ,然后通过systemctl status docker 查看一下守护进程的状态,正常的话如下图所示:

     

    环境准备好之后,我们接下来去改造我们之前创建好的流水线,我们在我们已经完成了镜像推送到仓库的流水线上添加第三个任务,这个任务的目的是通过SSH登录到

    我们的公网服务器上去,然后在我们的服务器上登录到我们的镜像仓库,从仓库中获取到我们想要的镜像,最后进行镜像的部署。

    首先,添加ssh任务

     

     选择我们装好了docker环境的服务器,选择编辑在线脚本,脚本的主要内容是:登录我们之前做好的镜像仓库,从仓库中获取我们的镜像,执行docker run部署

     

     脚本内容如下:

    docker login ccr.ccs.tencentyun.com --username=100008582177 --password=******
    //这里我们使用$(Build.BuildId)环境变量,让流水线自动拉取上一个任务编译好的镜像TAG
    docker pull docker pull ccr.ccs.tencentyun.com/my-registry/my-image-repository:test-$(Build.BuildId) 
    docker run
    -d --name test -p 8080:8081 ccr.ccs.tencentyun.com/my-registry/my-image-repository:test-$(Build.BuildId)

    编写好之后,我们运行一下流水线看看效果

     

     

     这里有个小插曲,就是我第一次运行的时候所有的命令都执行成功了,但是到最后流水线依然会报出异常,结果查证之后发现原来是最后docker向控制台输出了stderr,我去搜索了一番

    stackoverfolw上是这么答复的:

     

     所以我们需要按照提示去关闭ssh这个任务中的Fail on stderr选项。

    被这个玩意坑了我20分钟,太惨了。

    到这里,我们就完成了通过azure实现从镜像编译到部署的全套流程,接下来我们将会开始研究azure的更多功能。

  • 相关阅读:
    青少年python系列 34.内建函数
    批量取redis keyvalue和批量删除key
    React基础语法
    java毕业设计校园资料在线分享网站mybatis+源码+调试部署+系统+数据库+lw
    Python线程详解
    【Linux】Linux的常见指令详解(上)
    element ui this.$msgbox 自定义组件
    高级数据结构——树状数组
    领先特斯拉,中国电车制造商“登陆”东南亚,电气化潮流一触即发
    初学者要如何学习3D游戏建模
  • 原文地址:https://www.cnblogs.com/Tassdar/p/16134217.html