zoukankan      html  css  js  c++  java
  • redhat quay 安装试用

    最近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

  • 相关阅读:
    设计模式—适配器模式
    设计模式—策略模式 状态模式
    设计模式——装饰模式和代理模式
    C++常考算法
    ModelState.AddModelError使用
    Json
    ref与out
    三层与mvc
    新的方法(Set<T>)实现mvc的crud
    【程序45】
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/11850908.html
Copyright © 2011-2022 走看看