redhat quay 可以类似docker hub 那样进行镜像的构建,以下是一个学习,但是在测试中发现流程是可以通的,但是
quay 在对于dockerfile 内容处理上有bug,造成builder 获取到的内容为空,无法进行镜像构建

环境准备

  • dockerc-compose
 
version: "3"
services: 
  postgres:
    image: postgres:10
    ports:
    - "5432:5432"
    environment: 
    - "POSTGRES_PASSWORD:dalong"
  redis:
    image: redis
    ports:
    - "6379:6379"
    privileged: true
  quay-config:
    image: dalongrong/quay:v3.1.2
    command: config
    env_file: 
    - .env
    privileged: true
    ports:
    - "8443:8443"
  quay-deploy:
    image: dalongrong/quay:v3.1.2
    env_file: 
    - .env
    privileged: true
    volumes: 
    - "./quay/config:/conf/stack:Z"
    - "./quay/storage:/datastorage:Z"
    ports:
    - "443:8443"
    - "8080:8080"
  quay-builder:
    image: dalongrong/quay-builder
    environment: 
    - "SERVER=ws://quay-deploy:8787"
    volumes: 
     - "/var/run/docker.sock:/mnt/docker.sock"
127.0.0.1 quay-deploy 

quay-builder 说明

quay-builder 是包含了websocket 服务的通信以及与BuildManager获取构建内容,运行需要docker engine
运行的时候我们可以通过环境变量配置server

运行使用

  • 添加基于dockerfile 的内容构建

  • 选择dockerfile

  • 构建效果

  • 失败原因:
    builder 日志
 
quay-builder_1 | time="2019-11-13T12:54:07Z" level=info msg="decoded build args: rpc.BuildArgs{BuildPackage:\"http://quay-deploy:8080/userfiles/f873ae85-f9e2-4d10-a663-08921bae216d\", Context:\"/\", DockerfilePath:\"Dockerfile\", Repository:\"rong/dockerfile\", Registry:\"quay-deploy:8080\", PullToken:\"7MPM2WSQ1GXSMA3BNLNEF2M2MW7J205FQTP9N8IMQGB5UG57WSBW6YFWA6CNLH7U\", PushToken:\"7MPM2WSQ1GXSMA3BNLNEF2M2MW7J205FQTP9N8IMQGB5UG57WSBW6YFWA6CNLH7U\", TagNames:[]string{\"latest\"}, Git:(*rpc.BuildArgsGit)(nil), BaseImage:rpc.BuildArgsBaseImage{Username:\"\", Password:\"\"}}"
quay-builder_1 | time="2019-11-13T12:54:07Z" level=info msg="connecting to docker host: unix:///var/run/docker.sock"

从以上我们可以看出需要请求dockerfile 的内容,但是server 返回的内容为空

实际文件目录的内容

说明

以上就是集成builder 进行docker 镜像构建,但是有bug,流程没有问题,同时在集成gitlab等的时候无法,获取组下边的项目(可能是gitlab 版本的问题?)

参考资料

https://github.com/quay/quay
https://github.com/quay/quay-builder
https://access.redhat.com/documentation/en-us/red_hat_quay/3/html/use_red_hat_quay/build-support
https://hub.docker.com/repository/docker/dalongrong/quay-builder
https://hub.docker.com/repository/docker/dalongrong/quay

redhat quay 集成镜像构建的更多相关文章

  1. redhat quay 安装试用

    最近redhat 开源了quay 容器镜像管理平台,参考官方文档跑的时候需要订阅,各种不好使,然后就自己基于源码构建了 一个镜像(使用官方的dockerfile,构建出来的太大了1.9G 以及push ...

  2. vitess基础镜像构建流程Centos

    以下列出了构建vitess使用的Centos镜像的简单流程,由于较早基础版本是Centos7.2的,重新构建可以基于最新的Centos版本构建 1.基础镜像拉取 #拉取官方版本 docker pull ...

  3. 5大最新云原生镜像构建工具全解析,3个来自Google,你了解几个?

    1云原生大背景下的镜像构建在分享开始,我想先跟大家简单聊一下云原生,可能不会详细展开,而是带领大家了解一下云原生对镜像构建方面的影响.第一,在接触云原生相关的技术时,无论是要解决开发.测试环境的问题, ...

  4. 玩转docker镜像和镜像构建

    摘要 本文从个人的角度,讲述对于docker镜像和镜像构建的一些实践经验.主要内容包括利用docker hub进行在线编译,下载镜像,dind的实践,对于镜像的一些思考等.本文是对当时微信分享内容的一 ...

  5. Docker镜像构建的两种方式

    关于Docker里面的几个主要概念 这里用个不太恰当的比方来说明. 大家肯定安装过ghost系统,镜像就像是ghost文件,容器就像是ghost系统.你可以拿别人的ghost文件安装系统(使用镜像运行 ...

  6. spring boot / cloud (三) 集成springfox-swagger2构建在线API文档

    spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...

  7. docker之NGINX镜像构建

    Nginx是一个高性能的Web和反向代理服务器,它具有很多非常优越的特性:1.作为Web服务器.2.作为负载均衡服务器.3.作为邮件代理服务器.4.安装及配置简单.接下来我们介绍在docker构建ng ...

  8. Docker镜像构建的两种方式(六)--技术流ken

    镜像构建介绍 在什么情况下我们需要自己构建镜像那? (1)当我们找不到现有的镜像,比如自己开发的应用程序 (2)需要在镜像中加入特定的功能 docker构建镜像有两种方式:docker commit命 ...

  9. Docker镜像构建

    一.简介 在构建容器化应用时,相当重要的步骤莫过于镜像制作,本文将介绍镜像制作方法以及镜像制作的建议.通常镜像的制作有两种方式: 使用现有的容器使用docker commit 生成镜像 使用Docke ...

随机推荐

  1. sqlite删除数据

    sqlite删除数据 某日, 在使用sqlite的时候发现查询速度极慢, 查看了一下文件大小, sqlite数据库文件已经达到了 22G! 对于一个文件数据库来说, 已经相当致命了,先不说后面如果解决 ...

  2. FZU 1759 题解 欧拉降幂

    本题考点:欧拉降幂 Super A^B mod C Given A,B,C, You should quickly calculate the result of A^B mod C. (1<= ...

  3. 使用AtomicInteger写一个显示锁

    利用了AtomicInteger的compareAndSet方法 public class CASLock { private AtomicInteger value = new AtomicInte ...

  4. Linux启动/停止/重启gitlab

    # Start all GitLab components sudo gitlab-ctl start # Stop all GitLab components sudo gitlab-ctl sto ...

  5. Java SPI机制:ServiceLoader实现原理及应用剖析

    一.背景 SPI,全称Service Provider Interfaces,服务提供接口.是Java提供的一套供第三方实现或扩展使用的技术体系.主要通过解耦服务具体实现以及服务使用,使得程序的可扩展 ...

  6. 提高性能,MySQL 读写分离环境搭建(一)

    这是松哥之前一个零散的笔记,整理出来分享给大伙! MySQL 读写分离在互联网项目中应该算是一个非常常见的需求了.受困于 Linux 和 MySQL 版本问题,很多人经常会搭建失败,今天松哥就给大伙举 ...

  7. IdentityService4学习笔记之Authorization Code

    前文 本文所有内容来自官方文档,如果有写不明白的地方请下方留言或查看官方文档. 今天介绍Authorization Code模式,适用于保密类型的客户端,保密类型客户端可以理解为在服务器端生成页面(比 ...

  8. .net core 加载项目提示项目文件不完整,dotnet提示不是内部或外部命令

    记录一下 在系统环境变量中PATH添加如下: C:\Windows;C:\Windows\System32\System32\Wbem;C:\Windows\System32;

  9. python跳出多循环

    参考https://www.php.cn/python-tutorials-88895.html 备注 Python的循环体自己就有else分支! 如果for循环没有执行break,则执行else,f ...

  10. Java集合大全

    上图为整理的集合类图关系,带对号标志的为线程安全类. 区别说明: 1.List Set Map Queue的区别List: 有序,可以多个元素引用相同的对象Set: 无序,不重复,不可以多个元素引用相 ...