介绍

本指南为开发人员提供了从源代码构建和运行Harbor的说明。

步骤1:为Harbor的构建环境做准备

Harbor被部署为多个Docker容器,并且大多数代码都是用Go语言编写的。构建环境需要Docker,Docker Compose和golang开发环境。请安装以下先决条件:

软件 所需版本
docker 17.05 +
docker-compose 1.18.0 +
python 2.7 +
git 1.9.1 +
make 3.81 +
golang* 1.7.3 +

*可选,仅当您使用自己的Golang环境时才需要。

步骤2:获取源代码

    $ git clone https://github.com/goharbor/harbor

步骤3:构建和安装Harbor

配置

编辑文件 make/harbor.yml 并进行必要的配置更改,例如主机名,管理员密码和邮件服务器。有关更多信息,请参考 安装和配置指南

    $ cd harbor
$ vi make/harbor.yml

编译和运行

您可以通过以下三种方法之一来编译代码:

I.使用官方Golang映像进行构建

  • 从Docker Hub获取官方的Golang图像:

        $ docker pull golang:1.12.12
  • 在没有公证人的情况下构建,安装和启动Harbor:

       $ make install GOBUILDIMAGE=golang:1.12.12 COMPILETAG=compile_golangimage
  • 使用公证人建立,安装和启动Harbor:

      $ make install GOBUILDIMAGE=golang:1.12.12 COMPILETAG=compile_golangimage NOTARYFLAG=true

- 与Clair一起构建,安装和启动Harbor: ```sh
$ make install GOBUILDIMAGE=golang:1.12.12 COMPILETAG=compile_golangimage CLAIRFLAG=true

II.使用您自己的Golang环境编译代码,然后构建Harbor

  • 将源代码移至$GOPATH

       $ mkdir $GOPATH/src/github.com/goharbor/
    $ cd ..
    $ mv harbor $GOPATH/src/github.com/goharbor/.
  • 在没有公证人和克莱尔的情况下构建,安装和运行Harbor:

       $ cd $GOPATH/src/github.com/goharbor/harbor
    $ make install
  • 使用Notary和Clair构建,安装和运行Harbor:

       $ cd $GOPATH/src/github.com/goharbor/harbor
    $ make install -e NOTARYFLAG=true CLAIRFLAG=true

验证您的安装

如果一切正常,您将收到以下消息:

   ...
Start complete. You can visit harbor now.

有关管理Harbour实例的更多信息,请参考安装和配置指南

[翻译]

harbor 编译 https://github.com/goharbor/harbor/blob/release-1.9.0/docs/compile_guide.md

Harbor 1.9.x 版本从源码构建和运行的更多相关文章

  1. Delphi:程序自己删除自己,适用于任何windows版本(含源码)

    Delphi:程序自己删除自己,适用于任何windows版本(含源码) function Suicide: Boolean; var   sei: TSHELLEXECUTEINFO;   szMod ...

  2. Pytorch版本yolov3源码阅读

    目录 Pytorch版本yolov3源码阅读 1. 阅读test.py 1.1 参数解读 1.2 data文件解析 1.3 cfg文件解析 1.4 根据cfg文件创建模块 1.5 YOLOLayer ...

  3. spring 各个版本的源码、jar包和源码jar包下载地址

    spring各个版本的源码jar包.文档jar包和spring的jar包 http://maven.springframework.org/release/org/springframework/sp ...

  4. jQuery 2.1.4版本的源码分析

    jQuery 2.1.4版本的源码分析 jquery中获取元素的源码分析 jQuery.each({// 获取当前元素的父级元素 parent: function(elem) { var parent ...

  5. Tomcat各版本及源码包下载

    Tomcat各版本及源码包下载 1.百度 Tomcat 进入官网2.Tomcat 官网地址:http://tomcat.apache.org/3.所有 Tomcat 版本及源码包下载地址:https: ...

  6. java开源即时通讯软件服务端openfire源码构建

    java开源即时通讯软件服务端openfire源码构建 本文使用最新的openfire主干代码为例,讲解了如何搭建一个openfire开源开发环境,正在实现自己写java聊天软件: 编译环境搭建 调试 ...

  7. Flink源码分析 - 源码构建

    原文地址:https://mp.weixin.qq.com/s?__biz=MzU2Njg5Nzk0NQ==&mid=2247483692&idx=1&sn=18cddc1ee ...

  8. Elasticsearch源码分析 - 源码构建

    原文地址:https://mp.weixin.qq.com/s?__biz=MzU2Njg5Nzk0NQ==&mid=2247483694&idx=1&sn=bd03afe5a ...

  9. android 源码编译及其运行模拟器相关问题记录

    最近一直在看android源码相关的文档,包括编译源码,还有framework层的代码,本人很懒,一直没有写博客,今天想自己在编译一下源码,并且运行在模拟器中. 源码的版本不同,需要的jdk可能也有所 ...

随机推荐

  1. 12.pyecharts详细使用教程

    官方数据教程: 柱状图-Bar //导入柱状图-Bar from pyecharts import Bar //设置行名 columns = ["Jan", "Feb&q ...

  2. C# DataTable数据类型判断

    当我们从数据中获取到数据,一般会使用 DataTable 接收,然后会遍历每行数据.由于从数据库中读取的数据可能为空,比如我们的编译代码如下: foreach (DataRow datarow in ...

  3. Flink系列之Time和WaterMark

    当数据进入Flink的时候,数据需要带入相应的时间,根据相应的时间进行处理. 让咱们想象一个场景,有一个队列,分别带着指定的时间,那么处理的时候,需要根据相应的时间进行处理,比如:统计最近五分钟的访问 ...

  4. hexo零基础搭建博客系列(一)

    关于其他搭建 [hexo4快速搭建博客(二)更换主题](https://blog.csdn.net/weixin_41800884/article/details/103750634)[hexo4快速 ...

  5. Arrays.sort() VS Arrays.parallelSort()

    英文原文地址:Arrays.sort vs Arrays.parallelSort 作者:baeldung 翻译:高行行 1. 概述 我们都使用过 Arrays.sort() 对对象或原始数据类型数组 ...

  6. 前端Tips#4 - 用 process.hrtime 获取纳秒级的计时精度

    本文同步自 JSCON简时空 - 前端Tips 专栏#4,点击阅读 视频讲解 视频地址 文字讲解 如果去测试代码运行的时长,你会选择哪个时间函数? 一般第一时间想到的函数是 Date.now 或 Da ...

  7. RedisCluster linux下批量删除 key

    Redis Cluster linux下批量删除键 说明 使用时不支持传入参数 , 如 redis_batch_del.sh , 因为在linux下 会自动将 * 解析为当前目录下所有文件名, 目前还 ...

  8. 干货!SQL性能优化,书写高质量SQL语句

    写SQL语句的时候我们往往关注的是SQL的执行结果,但是是否真的关注了SQL的执行效率,是否注意了SQL的写法规范? 以下的干货分享是在实际开发过程中总结的,希望对大家有所帮助! 1. limit分页 ...

  9. 第五篇:python购物车小程序开发demo

    功能:自定义工资水平,可选商品加购余额实时提醒用到的知识点:列表.if多分支.循环.高亮输出未解决bug删除商品后不能自动退出 代码如下: if shopping_list: shopping_lis ...

  10. django 建立安全索引

    上篇记录使用“CONCURRENTLY” 命令行执行不锁表索引,对于django, 如何执行呢?这里记录一种方法,修改django迁移文件. 在执行完迁移后,为了方便找到该迁移文件,可以采用指定命名迁 ...