介绍

本指南为开发人员提供了从源代码构建和运行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. 洛谷$P5330\ [SNOI2019]$数论 数论

    正解:数论 解题报告: 传送门$QwQ$ ,,,这题还蛮妙的$QwQ$(,,,其实所有数论题对我来说都挺妙的$kk$然后我真的好呆昂我理解了好久$QAQ$ 考虑先建$Q$个点,编号为$[0,Q)$,表 ...

  2. linux tomcat安装

    一.下载tomcat包 下载tomcat包并上传至服务器中 解压文件: tar -zxvf apache-tomcat-8.5.47.tar.gz 为了后期程序的便于管理,我们还需要将Tomcat复制 ...

  3. JVM性能优化系列-(1) Java内存区域

    1. Java内存区域 1.1 运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.主要包括:程序计数器.虚拟机栈.本地方法栈.Java堆.方法区(运 ...

  4. 【C++】CCFCSP201803-2碰撞的小球

    // // main.cpp // CCFCSP20180318_2_碰撞的小球 // // Created by T.P on 2018/3/24. // Copyright © 2018年 T.P ...

  5. 「UVA1328」「POJ1961」 Period 解题报告

    UVA1328 Period 其他链接:luogu UVA1328 POJ1961 For each prefix of a given string S with N characters (eac ...

  6. Spring MVC系列之模型绑定(SpringBoot)(七)

    前言 上一节我们在SpringBoot中启用了Spring MVC最终输出了HelloWorld,本节我们来讲讲Spring MVC中的模型绑定,这个名称来源于.NET或.NET Core,不知是否恰 ...

  7. 【Java基础总结】总结

    总想着把学习的过程全都记录下来 以便某一时刻回头的时候,还能看见走过的路 对于基础来说,即使不回头看,也知道这条路是什么样子的 记录不记录,都无所谓 况且我不是专业的记录者,不记录比记录好 实在想不起 ...

  8. 【转】[IT综合面试]牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结

    感谢IT面试群 S-北京-陈磊 的整理分享.   基础篇:操作系统.计算机网络.设计模式         提高篇:WIN32.MFC与Linux 算法篇:算法与数据结构           一:操作系 ...

  9. .Net Framework为什么需要联网?

    .Net Framework在安装时需要从微软官方网站下载语言包,所以需要联网. 如果想要真正离线安装,需要先把所需的语言包下载下来.

  10. js中如何将伪数组转换成数组

    伪数组:不能调用数组的方法, 1.对象是按索引方式存储数据的 2.它具备length属性 {0:'a',1:'b',length:2} //es5伪数组转换成数组 let args = [].slic ...