Docker Hub镜像构建测试

栏目: 编程工具 · 发布时间: 5年前

内容简介:Docker Hub提供了镜像构建服务,特别是和代码仓库关联起来的时候可以自动构建最新的镜像,这个功能可以保证你的镜像时刻是最新的。但是有时候构件本身可能是成功的,比如你成功生成了相关的jar,并放到了合适的运行容器中,但是可能由于第三方依赖或其他原因导致你的镜像其实并不能正常工作。人工验证可以发现问题,但是这里使用Docker Hub提供的测试服务更加快捷。

Docker Hub提供了镜像构建服务,特别是和代码仓库关联起来的时候可以自动构建最新的镜像,这个功能可以保证你的镜像时刻是最新的。

但是有时候构件本身可能是成功的,比如你成功生成了相关的jar,并放到了合适的运行容器中,但是可能由于第三方依赖或其他原因导致你的镜像其实并不能正常工作。

人工验证可以发现问题,但是这里使用Docker Hub提供的测试服务更加快捷。

我们以dubbo-admin为例,这是一个非常标准的Spring Boot项目,构建以后生成jar包可以直接运行。而我们的测试目标就是构建出的镜像可以正常对外提供服务,这里我们检测swagger文档地址是否返回200。不同的项目可以使用不同的检测标准。

首先添加一个检测脚本test.sh

LOOP_SIZE=60
i=0

while [[ $i -lt LOOP_SIZE ]]; do
	status_code=$(curl --write-out %{http_code} --silent --output /dev/null http://admin:8080/swagger-resources)

  if [[ "$status_code" -eq 200 ]] ; then
    echo "Tests passed!"
    exit 0
  else
    curl -v http://admin:8080/swagger-resources
    echo "status is incorrect, waiting for next turn"
  fi
	sleep 5
	i=$i+1
done

echo "Tests failed!"
exit 1

这里循环检测相关访问是否成功,重试60次,每次间隔5秒。

然后提供了测试镜像

FROM ubuntu:trusty
RUN apt-get update && apt-get install -yq curl && apt-get clean

WORKDIR /app

ADD test.sh /app/test.sh

CMD ["bash", "test.sh"]

最后新建一个docker-compose.test.yml,这个名字是Docker Hub检测的依据,不要用其他名字

zookeeper:
  image: zookeeper
admin:
  build: .
  dockerfile: Dockerfile
  links:
    - zookeeper
  environment:
    - admin.registry.address=zookeeper://zookeeper:2181
    - admin.config-center=zookeeper://zookeeper:2181
    - admin.metadata-report.address=zookeeper://zookeeper:2181
sut:
  build: .
  dockerfile: Dockerfile.test
  links:
    - admin

这其中可以增加相关依赖,比如zookeeper。

最后在Docker Hub的执行结果如下:

Docker Hub镜像构建测试

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

趣学Python编程

趣学Python编程

Jason Briggs / 尹哲 / 人民邮电出版社 / 2014-3 / 45.00元

python是一款解释型、面向对象、动态数据类型的高级程序设计语言。python语法简捷而清晰,具有丰富和强大的类库,因而在各种行业中得到广泛的应用。对于初学者来讲,python是一款既容易学又相当有用的编程语言,国内外很多大学开设这款语言课程,将python作为一门编程语言学习。 《趣学python编程》是一本轻松、快速掌握python编程的入门读物。全书分为3部分,共18章。第1部分是第......一起来看看 《趣学Python编程》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具