最近redhat 开源了quay 容器镜像管理平台,参考官方文档跑的时候需要订阅,各种不好使,然后就自己基于源码构建了
一个镜像(使用官方的dockerfile,构建出来的太大了1.9G 以及push docker hub 了),然后参考官方文档运行,各种不
好使,结合查看源码进行摸索,终于部分跑起来了,功能尽管很强大,但是有点费事,以下是安装以及碰到的问题解决方
法的记录

环境准备

docker-compose 构建好的镜像以及push dockerhub了 dalongrong/quay

  • docker-compose 文件
 
version: "3"
services: 
  postgres:
    image: postgres:10
    ports:
    - "5432:5432"
    environment: 
    - "POSTGRES_PASSWORD:dalong"
  redis:
    image: redis
    ports:
    - "6379:6379"
    privileged: true
  quay-migration:
    image: dalongrong/quay:v3.1.2
    command: migrate
    env_file: 
    - .env
    privileged: true
    ports:
    - "8443:8443"
  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"
    - "80:8080"
  quay-mirror:
    image: dalongrong/quay:v3.1.2
    command: repomirror
    privileged: true
    env_file: 
    - .env
    volumes: 
    - "./quay/config:/conf/stack"
  • 启动
docker-compose up -d 
  • 环境变量配置
    这个目前是一个坑,官方文档与实际运行效果不一致(可能是自己构建的原因),同时对于mysql 当前部分字段设计也不太合理(列的长度错误)
 
QUAY_OVERRIDE_CONFIG={"DATABASE_SECRET_KEY": "anothercrazykey!"}
ENCRYPTED_ROBOT_TOKEN_MIGRATION_PHASE=add-new-fields
CONFIG_APP_PASSWORD=dalong
  • 说明
    以上几个参数是结合官方的测试以及源码,暂时摸索的,ENCRYPTED_ROBOT_TOKEN_MIGRATION_PHASE 的参数为以下
add-new-fields
backfill-then-read-only-new
stop-writing-both
remove-old-fields

首次的话,可以使用通过这几个阶段配合使用(目前看到是有bug,表设计上的)

安装

  • 启动依赖组件
    mysql redis
docker-compose up -d postgres redis
  • 启动配置服务
docker-compose up -d  quay-config
  • 登录

账户 quayconfig 密码dalong

  • 配置

选择start new

  • 配置数据库选项

  • 创建管理员账户

  • 配置界面

这个是核心,quay 核心组件的启用都是在里边的,为了测试,我只使用了镜像存储以及push pull 的功能,详细配置参考官方文档

效果界面

  • 下载配置

解压配置,参考docker-compose 数据卷配置,此时config可以停止了

  • 启动部署
 
docker-compose up  -d quay-deploy
  • 登录界面

  • 创建repo

  • 一个gitlab 集成的

常见问题

  • 表结构问题
(1074, u"Column length too big for column 'ancestors' (max = 16383); use BLOB or TEXT instead") [SQL: CREATE TABLE image ( id INTEGER NOT NULL AUTO_INCREMENT, docker_image_id VARCHAR(255) NOT NULL, repository_ 

可以调整编码或者修改下源码,目前测试mysql:5.7.16可以使用,或者直接使用pg

  • pg 数据库问题
    需要pg_trgm 扩展 CREATE EXTENSION IF NOT EXISTS pg_trgm;
  • pg 数据库配置提示token_name 问题
    应该算是bug,可以先生成结构,然后使用stop-writing-both 配置阶段在运行,或者多尝试几次(删除表,然后在执行,反正尝试成功了,应该还是有bug)
Database Setup Failed: no such column: token_name

说明

redhat quay 尽管很强大,但是目前看到问题还是有好多,期待可以ga

参考资料

https://github.com/quay/quay
https://hub.docker.com/repository/docker/dalongrong/quay

redhat quay 安装试用的更多相关文章

  1. redhat自定义安装必选

    redhat自定义安装必选 1.桌面 ked桌面 x 窗口系统 2.应用程序 编辑器 基于文本的互联网 图形互联网 3.服务器 服务器配置工具 万维网服务器 Windows文件 FTP服务器

  2. redhat 中安装rpm包时遇到异常 “error: Failed dependencies:xinetd is needed by .”

    redhat 中安装rpm包时遇到错误 “error: Failed dependencies:xinetd is needed by ....” redhat中安装rpm包时遇到“error: Fa ...

  3. 如何在redhat下安装WineQQ

    使用过redhat的朋友都知道在redhat下要使用聊天工具例如:腾讯QQ只能是用网页QQ,但网页QQ始终用得不尽人意,下面我将给大家介绍一种在redhat下安装WineQQ的方法,让你能在redha ...

  4. 项目管理工具 Redmine 安装试用手记

    原文:项目管理工具 Redmine 安装试用手记 项目管理工具 Redmine 安装试用手记 分类: Redmine2009-06-01 10:12 996人阅读 评论(1) 收藏 举报 项目管理工具 ...

  5. RedHat下安装Python开发环境

    Linux RedHat下安装Python2.7.pip.ipython环境.eclipse和PyDev环境 准备工作,源Python2.6备份: 根据which python具体目录而定,进行备份 ...

  6. RedHat 7 安装PostgreSQL 10.5

    系统环境 Redhat: Version: 7.4.1708 Architecture: x86_64 Address: 10.127.1.11 User: root Uassword: redhat ...

  7. Tencent Server Web 安装试用

    Tencent Server Web 安装试用 私有环境搭建,使用docker-compose 进行memcache 安装 参考github 代码 https://github.com/rongfen ...

  8. toxiproxy 安装试用

    备注:    实际上是一个代理工具,但是又不是简单的进行代理(tcp,可以配置策略,toxics 实现延迟,模拟故障,    对于这个大家可能了解的就是netflix 公司的chaos monkey, ...

  9. (转)RedHat/CentOS安装和配置kerberos

    RedHat/CentOS安装和配置kerberos 需要在kerberos server和客户端都先安装ntp (Internet时间协议,保证服务器和客户机时间同步 ) 1  kerberos 服 ...

随机推荐

  1. [数据结构 - 第8章] 查找之哈希表(C语言实现)

    首先是需要定义一个哈希表的结构以及一些相关的常数.其中 HashTable 就是哈希表结构.结构当中的 elem 为一个动态数组. #define HASHSIZE 12 // 定义哈希表长为数组的长 ...

  2. 基础知识---IEnumerable、ICollection、IList、IQueryable

    一.定义 IEnumerable public interface IEnumerable<out T> : IEnumerable ICollection public interfac ...

  3. W tensorflow/core/util/ctc/ctc_loss_calculator.cc:144] No valid path found 或 loss:inf的解决方案

    基于Tensorflow和Keras实现端到端的不定长中文字符检测和识别(文本检测:CTPN,文本识别:DenseNet + CTC),在使用自己的数据训练这个模型的过程中,出现如下错误,由于问题已经 ...

  4. 【02】Kubernets:使用 kubeadm 部署 K8S 集群

    写在前面的话 通过上一节,知道了 K8S 有 Master / Node 组成,但是具体怎么个组成法,就是这一节具体谈的内容.概念性的东西我们会尽量以实验的形式将其复现. 部署 K8S 集群 互联网常 ...

  5. 【linux】Too many open files 解决问题第一步【记录】

    记录一下解决linux上出现:Too many open files  的第一步骤. 做个记录,免得每次都查来查去的. 1.查看 ulimit -a 2.修改 vi /etc/security/lim ...

  6. 硬件笔记之制作MacOS Mojave U盘USB启动安装盘方法

    0x00 概述 随着苹果 macOS Mojave 正式版发布,很多使用 Mac 电脑的同学都已升级到最新版了.但如果你对系统有洁癖或原本系统已凌乱不堪,那么可能还是希望能格式化「全新安装 macOS ...

  7. python 练习题:使用迭代查找一个list中最小和最大值,并返回一个tuple

    # -*- coding: utf-8 -*- # 请使用迭代查找一个list中最小和最大值,并返回一个tuple from collections import Iterable def findM ...

  8. System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false

    多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,这时如果想要访问窗口的控件,发现无法对其控制. 这时可将窗口构造函数中的CheckForIllegalCrossThreadCalls设置为f ...

  9. 本地eyoucms搬家

    1.后台数据备份 2.删除install 里面的install.lock 3.清理缓存文件 data - runtime-删除所有文件: 4.项目中的文件全部压缩 即打包完毕:最后再把打包的文件放置到 ...

  10. 《2017年-2018年中国MES软件及服务市场研究报告》正式发布!

    <2017年-2018年中国MES软件及服务市场研究报告>由e-works Research研究编写,报告深度分析了2017年及2018年中国MES市场发展状况,从市场规模.市场特点.需求 ...