iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何进行基于Docker的可持续交付问题分析
  • 589
分享到

如何进行基于Docker的可持续交付问题分析

2023-06-26 04:06:15 589人浏览 泡泡鱼
摘要

这期内容当中小编将会给大家带来有关如何进行基于Docker的可持续交付问题分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在测试的立场上,希望开发编写的代码都是经过开发的单元测试的,但是事实上,这中间总

这期内容当中小编将会给大家带来有关如何进行基于Docker的可持续交付问题分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

测试的立场上,希望开发编写的代码都是经过开发的单元测试的,但是事实上,这中间总是存在理想和现实的差距,既然如此,我们何不来开发部署环境后,对服务进行自动化测试验证了。整体的设计思路就是开发编写的代码,使用Dockerfile构建成镜像文件,然后使用docker-compose自动化启动镜像文件,下一步其实就很简单了,我们测试这边进行智能化的自动验证,在测试结束的时候出具体的测试报告以及如果存在问题,触发整体报警的机制。主要结合CI持续集成的工具,把这个过程完全的自动化,以及智能化的过程。当然,使用的技术栈主要是Spring Boot

创建spring Boot的项目后,这地方简单的写一个测试的接口,controller层源代码具体如下:

package com.example.app;import org.springframework.WEB.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class AppController{   @RequestMapping("/index")   public String hello()   {      return "Hello SpringBoot!";   }   @RequestMapping("/testDev")   public  String testDev()   {      return "测试开发工程师";   }}

这部分的代码其实相对而言是非常简单的,这里就不做详细的解释了。编写代码完成后,下来编写Dockerfile的文件来构建镜像,Dockerfile在项目中存放的位置主要是在src/main下的docker文件夹,创建docker文件夹后,在里面创建Dockerfile的文件,然后在里面包编写需要构建镜像的内容信息,具体目录结构如下所示:

如何进行基于Docker的可持续交付问题分析

Dockerfile文件夹的内容具体为:

FROM java:8MAINTAINER 乐却思蜀VOLUME /tmpRUN mkdir /appCOPY app-0.0.1-SNAPSHOT.jar /app/app.jarWORKDIR /appEXPOSE 8081CMD  ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]

下来在docker的文件夹创建docker-compose.yml文件,在该文件主要定义镜像的资源,网络以及启动停止的过程,该文件的内容信息具体如下:

version: '3.2'services:  app:    image: app:0.0.1-SNAPSHOT    hostname: localhost    ports:    - "8081:8081"    networks:      - mynetworknetworks:  mynetwork:    external: true

在如上的文件中可以看到自定义了网络是mynetwork,在docker中可以创建网络,以及查看目前已有的网络信息,具体如下:

docker network lsNETWORK ID           NAME              DRIVER              SCOPE5e0d06b35341         bridge            bridge              local34f731bed1dc         host              host                local4b5926f1e44d         mynetwork         bridge              local

下来编写测试的代码,测试的代码这里使用python语言结合Pytest测试框架来编写,具体测试模块test_sprintboot.py的源码如下:

import requestsimport pytest def test_springboot_index():  r=requests.get("Http://localhost:8081/index")  assert r.status_code==200def test_springboot_testDev():  r=requests.get("http://localhost:8081/testDev")  assert r.status_code == 200

这个测试代码相对而言是比较简单的,这里主要需要验证的是服务自动化部署后智能化的验证。

在如上的准备工作做好,下来在jenkins中创建Pipeline的项目,Pipeline script的脚本具体如下:

pipeline{    agent any    stages{        stage('build the image'){            steps{                sh '''cd /Applications/code/workSpace/data/app                mvn clean package  -DMaven.test.skip=true   docker:build'''            }        }        stage('run the container'){            steps{                sh '''cd /Applications/code/workSpace/data/app/src/main/docker                docker-compose up -d '''            }        }        stage('smoke test'){            steps{                sh '''cd /Applications/code/workSpace/data/app/src/main/docker                sleep 10s                python3 -m pytest -v test_springboot.py'''            }        }    }}

下来开始在CI中构建和执行过程,构建后可视化的界面信息如下所示:

如何进行基于Docker的可持续交付问题分析

输出的详细信息在这里只显示部分,具体如下:

======================== 2 passed, 3 warnings in 0.72s =========================[Pipeline] }[Pipeline] // stage[Pipeline] }[Pipeline] // node[Pipeline] End of PipelineFinished: SUCCESS

对于质量交付团队而言,需要思考的点是,我们怎么样结合现有的技术来达成我们的目标和质量验证的手段。其实一种验证的研发体系流程是开发无论如何需要对自己编写的代码进行单元测试,这样其实一个体系它是通过,整体体系我们完全可以持续流水线的方式来进行验证,从而提高交付的效率以及提交给测试团队是高质量的代码。

上述就是小编为大家分享的如何进行基于Docker的可持续交付问题分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 如何进行基于Docker的可持续交付问题分析

本文链接: https://www.lsjlt.com/news/306491.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何进行基于Docker的可持续交付问题分析
    这期内容当中小编将会给大家带来有关如何进行基于Docker的可持续交付问题分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在测试的立场上,希望开发编写的代码都是经过开发的单元测试的,但是事实上,这中间总...
    99+
    2023-06-26
  • 基于Docker的可持续交付问题
    在测试的立场上,希望开发编写的代码都是经过开发的单元测试的,但是事实上,这中间总是存在理想和现实的差距,既然如此,我们何不来开发部署环境后,对服务进行自动化测试验证了。整体的设计思路...
    99+
    2024-04-02
  • PHP中如何进行持续集成和持续交付?
    随着软件开发的快速发展,持续集成和持续交付已经成为现代软件开发中不可或缺的技术。作为一种流程和文化,持续集成和持续交付可以帮助开发团队更快、更高效地开发和部署软件,同时也可以保证软件的质量和稳定性。在本文中,我们将介绍如何使用PHP进行持续...
    99+
    2023-05-14
    PHP 持续集成 持续交付
  • 如何进行基于jenkins+kubernets+docker的持续化集成
    这篇文章将为大家详细讲解有关如何进行基于jenkins+kubernets+docker的持续化集成,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。项目实现效果,开发人员在gitlab上传代码...
    99+
    2023-06-19
  • 如何利用GitLab进行持续交付和发布
    如何利用GitLab进行持续交付和发布概述在软件开发领域,持续交付和发布是非常重要的实践。GitLab作为一个版本控制和项目管理平台,提供了丰富的功能用于支持持续交付和发布。本文将介绍如何利用GitLab进行持续交付和发布,并给出一些具体的...
    99+
    2023-10-25
    GitLab 持续交付 发布
  • 基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境的详细教程
    目录环境搭建概述1.K8S是什么?2.为什么要用K8S?3.使用K8S有哪些好处?4.环境构成安装Docker环境安装docker-compose1.下载docker-com...
    99+
    2024-04-02
  • 如何进行Sqlserver死锁问题的分析
    本篇文章为大家展示了如何进行Sqlserver死锁问题的分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 问题展现:sqlserve...
    99+
    2024-04-02
  • 如何利用GitLab进行持续集成的测试覆盖率分析
    如何利用GitLab进行持续集成的测试覆盖率分析引言:在软件开发过程中,测试覆盖率是评估测试的充分性与有效性的重要指标之一。测试覆盖率分析可以帮助开发团队评估测试的质量,并找出存在的漏洞和缺陷,从而提高软件的稳定性和可靠性。本文将介绍如何利...
    99+
    2023-10-27
    gitlab 持续集成 测试覆盖率分析
  • 如何在GitLab中进行持续集成的代码覆盖率分析
    标题:GitLab持续集成中的代码覆盖率分析及实例引言:随着软件开发变得越来越复杂,代码覆盖率分析成为了评估软件测试质量的重要指标之一。而采用持续集成来进行代码覆盖率分析可以帮助开发团队实时监控自己的代码质量,提高软件开发效率。本文将介绍如...
    99+
    2023-10-22
    gitlab 持续集成 代码覆盖率
  • 如何进行Python 中文乱码问题的分析
    本篇文章给大家分享的是有关如何进行Python 中文乱码问题的分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。建立一个文件test.txt,文件格式用ANSI,内容为:abc...
    99+
    2023-06-17
  • 如何进行基于代理的防火墙安全性分析
    本篇文章为大家展示了如何进行基于代理的防火墙安全性分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。其实一直以来,基于代理的防火墙或Web代理都被认为是一种非常重要的安全组件。但问题就在于,这种类型...
    99+
    2023-06-17
  • 如何进行关于线程池的分析
    今天就跟大家聊聊有关如何进行关于线程池的分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的《阿里巴巴 Java 手...
    99+
    2023-06-16
  • 如何进行Redis持久化RDB和AOF的分析
    如何进行Redis持久化RDB和AOF的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Redis持久化方案Redis是内存数据库,数据都是...
    99+
    2024-04-02
  • 如何分析SpringCloud中的Ribbon进行服务调用的问题
    这篇文章将为大家详细讲解有关如何分析SpringCloud中的Ribbon进行服务调用的问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、Robbon1.1、Ribbon概述(1)、Ri...
    99+
    2023-06-26
  • 如何监控和分析C++程序的性能以持续改进?
    使用性能分析器(如 gprof)、内置库(如 、),以及日志记录来监控性能;分析识别瓶颈:检测最耗时的部分、分析函数调用,以及检测内存泄漏;优化实战案例:通过并行处理字符优化耗时的字符串...
    99+
    2024-05-08
    c++ 性能分析 标准库
  • 如何基于Jquery.history解决ajax的前进后退问题
    本篇内容介绍了“如何基于Jquery.history解决ajax的前进后退问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅...
    99+
    2024-04-02
  • 如何进行Spring声明性事务常见问题分析
    小编今天带大家了解如何进行Spring声明性事务常见问题分析,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“如何进行Spring声明性...
    99+
    2023-06-17
  • 如何进行MySQL Sharding可扩展设计的分析
    本篇文章为大家展示了如何进行MySQL Sharding可扩展设计的分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MySQL Sharding可扩展设计一.背景...
    99+
    2024-04-02
  • 如何进行增加prev,next按钮实现问题的遍历分析
    如何进行增加prev,next按钮实现问题的遍历分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 1)修改strings.xml,增加两个按钮  ...
    99+
    2023-06-04
  • 如何进行SparkMllib主题模型案例的分析
    如何进行SparkMllib主题模型案例的分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一  文章涉及到的算法1, LDA主题模型符号定义文档集合...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作