• 技术文章 >运维 >Docker

    技术解答之Pipeline整合Docker容器

    长期闲置长期闲置2022-02-09 18:16:53转载199
    本篇文章给大家带来了关于流水线继承docker用法的相关知识,主要是Pipeline整合Docker容器的相关问题,希望对大家有帮助。

    本篇文章主要描述流水线集成Docker用法

    一、背景描述

    微服务架构是当前主流的技术选型,在业务具体落地时,会存在很多业务服务,不管是在开发、测试、上线的任意节点中,如果基于手动编译的方式打包服务,操作成本不仅极高,而且很容易出现纰漏。

    通过Pipeline流水线的方式,将服务镜像构建编排成一键触发执行,实现自动化的管理流程,是微服务架构中的必要的功能模块。

    二、流程设计

    本篇中的流程节点,主要针对打包好的应用Jar包,在docker模块中的处理流程,主要是镜像构建管理与容器运行:

    整个流程的都放在Pipeline流水线中,衔接在本地Jar包生成之后。

    三、实现过程

    1、插件安装

    首先安装流程中Docker集成的相关插件:Docker PipelineDocker pluginCloudBees Docker Hub/Registry Notification

    在之前的流水线篇幅中,已经通过流水线完成Gitee仓库代码pull和本地打包,下面开始处理docker环节。

    2、镜像构建脚本

    关于Dockerfile的脚本语法也可以参考之前docker篇幅,下面看流水线中的用法:

        environment {
            docker_directory = 'docker-app'
            docker_repository = '仓库URL'
        }
        
            stage('Dockerfile') {
                steps {
                    sh '''
                    rm -rf ${docker_directory}
                    mkdir -p ${docker_directory}
                    cp auto-client/target/auto-client-1.0-SNAPSHOT.jar ${docker_directory}/auto-client.jar
                    cd ${docker_directory}
    cat>Dockerfile<<EOF
    FROM java:8
    MAINTAINER cicadasmile
    VOLUME /data/docker/logs
    ADD auto-client.jar application.jar
    ENTRYPOINT ["java","-Dspring.profiles.active=dev","-Djava.security.egd=file:/dev/./urandom","-jar","/application.jar"]
    EOF
                    cat Dockerfile
                    '''
                    echo "create Dockerfile success"
                }
            }

    脚本说明:

    3、打包推送

    这里即进入docker目录,执行镜像打包的操作,并把镜像推送到云端仓库,很多仓库都是私有的,需要身份验证,通过配置凭据去访问:

    stage('DockerImage'){
        steps {
            script {
                dir("${docker_directory}") {
                    sh 'ls'
                    docker.withRegistry("${docker_directory}", '访问凭据') {
                       docker.build("doc-line-app:latest").push()
                    }
                }
                echo "build DockerImage success"
            }
        }
    }

    4、凭据配置

    打开Manage Jenkins界面,Manage Credentials选项;

    按如下流程配置即可:

    四、源代码地址

    GitEE·地址
    https://gitee.com/cicadasmile/butte-auto-parent
    Wiki·地址
    https://gitee.com/cicadasmile/butte-java-note

    推荐学习:《docker视频教程

    以上就是技术解答之Pipeline整合Docker容器的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:docker
    上一篇:Docker怎样搭建本地私有仓库(实例详解) 下一篇:基于Docker镜像部署go项目(实例详解)
    PHP编程就业班

    相关文章推荐

    • docker容器和仓库的区别是什么• docker用什么命令来查看运行的容器• docker是什么架构• docker容器占用多少内存怎么看• docker中的lamp是什么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网