当前位置: 首页 > news >正文

Docker之jenkins部署harbor在harbor中完成部署

Docker之jenkins部署harbor在harbor中完成部署

1、harbor作用

Harbor允许用户用命令行工具对容器镜像及其他Artifact进行推送和拉取,并提供了图形管理界面帮助用户查阅和删除这些Artifact。在Harbor 2.0版本中,除容器镜像外,Harbor对符合OCI规范的Helm Chart、CNAB、OPA Bundle等都提供了更多的支持。另外,Harbor为管理员提供了丰富的管理功能,特别是作为开源软件,随着版本的迭代,很多社区用户的反馈和贡献被吸收进来以便更好地适应。

2、harbor下载

https://github.com/goharbor/harbor/releases/tag/v2.8.3

3、安装

将里面的harbor.yml.temp 复制一份变成harbor.yml文件,然后修改下面几个

# Configuration file of Harbor# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: harbor.ycz.com # 这里改,之后在etc/host中新增# http related config
http:# port for http, default is 80. If https enabled, this port will redirect to https portport: 8000 # 这里改# https related config
#https: # 注释# https port for harbor, default is 443# port: 443 # 注释# The path of cert and key files for nginx# certificate: /your/certificate/path# private_key: /your/private/key/path# # Uncomment following will enable tls communication between all harbor 

启动

sudo ./install.sh [Step 0]: checking if docker is installed ...Note: docker version: 24.0.2[Step 1]: checking docker-compose is installed ...Note: Docker Compose version v2.19.1[Step 2]: loading Harbor images ...
+Loaded image: goharbor/registry-photon:v2.8.3
Loaded image: goharbor/notary-server-photon:v2.8.3
Loaded image: goharbor/notary-signer-photon:v2.8.3
Loaded image: goharbor/harbor-log:v2.8.3
Loaded image: goharbor/redis-photon:v2.8.3
Loaded image: goharbor/harbor-jobservice:v2.8.3
Loaded image: goharbor/prepare:v2.8.3
Loaded image: goharbor/harbor-core:v2.8.3
Loaded image: goharbor/harbor-registryctl:v2.8.3
Loaded image: goharbor/nginx-photon:v2.8.3
Loaded image: goharbor/trivy-adapter-photon:v2.8.3
Loaded image: goharbor/harbor-portal:v2.8.3
Loaded image: goharbor/harbor-db:v2.8.3
Loaded image: goharbor/harbor-exporter:v2.8.3[Step 3]: preparing environment ...[Step 4]: preparing harbor configs ...
prepare base dir is set to /Users/mac/docker/harbor
WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https
Clearing the configuration file: /config/portal/nginx.conf
Clearing the configuration file: /config/core/app.conf
Clearing the configuration file: /config/core/env
Clearing the configuration file: /config/jobservice/env
Clearing the configuration file: /config/jobservice/config.yml
Clearing the configuration file: /config/nginx/nginx.conf
Clearing the configuration file: /config/registry/config.yml
Clearing the configuration file: /config/registry/passwd
Clearing the configuration file: /config/db/env
Clearing the configuration file: /config/log/logrotate.conf
Clearing the configuration file: /config/log/rsyslog_docker.conf
Clearing the configuration file: /config/registryctl/env
Clearing the configuration file: /config/registryctl/config.yml
Generated configuration file: /config/portal/nginx.conf
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
loaded secret from file: /data/secret/keys/secretkey
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dirNote: stopping existing Harbor instance ...[Step 5]: starting Harbor ...
[+] Running 10/10✔ Network harbor_harbor        Created                                                                  0.1s ✔ Container harbor-log         Started                                                                  0.7s ✔ Container registryctl        Started                                                                  1.4s ✔ Container harbor-portal      Started                                                                  1.5s ✔ Container harbor-db          Started                                                                  1.5s ✔ Container redis              Started                                                                  1.8s ✔ Container registry           Started                                                                  1.8s ✔ Container harbor-core        Started                                                                  2.0s ✔ Container nginx              Started                                                                  2.5s ✔ Container harbor-jobservice  Started                                                                  2.5s 
✔ ----Harbor has been installed and started successfully.----

4、访问

默认密码时 admin Harbor12345

在这里插入图片描述

5、新增一个仓库,随便取名字

在这里插入图片描述
在这里插入图片描述

6、docker随便弄一个镜像试试能不能上传到仓库上

将mytest的重命名了,命名方式为 harbor地址/项目名/镜像名:版本

macdeMacBook-Pro:harbor mac$ docker tag 84fd17f590f0 harbor.ycz.com:8000/repo/mytest:latest
macdeMacBook-Pro:harbor mac$ docker images
REPOSITORY                                                TAG                                                                          IMAGE ID       CREATED          SIZE
mytest                                                    latest                                                                       84fd17f590f0   32 minutes ago   558MB
harbor.ycz.com:8000/repo/mytest                           latest                                                                       84fd17f590f0   32 minutes ago   558MB

push上去,发现没有权限

macdeMacBook-Pro:~ mac$ docker push harbor.ycz.com:8000/repo/mytest:latest
The push refers to repository [harbor.ycz.com:8000/repo/mytest]
0eeca62d60e3: Preparing 
508262fdcf74: Preparing 
99417f399c4c: Preparing 
6b5aaff44254: Preparing 
53a0b163e995: Preparing 
b626401ef603: Waiting 
9b55156abf26: Waiting 
293d5db30c9f: Waiting 
03127cdb479b: Waiting 
9c742cd6c7a5: Waiting 
unauthorized: unauthorized to access repository: repo/mytest, action: push: unauthorized to access repository: repo/mytest, action: push

登陆之后再push

macdeMacBook-Pro:~ mac$ docker login -u admin -p Harbor12345 harbor.ycz.com:8000
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
macdeMacBook-Pro:~ mac$ docker push harbor.ycz.com:8000/repo/mytest:latest
The push refers to repository [harbor.ycz.com:8000/repo/mytest]
0eeca62d60e3: Pushed 
508262fdcf74: Pushed 
99417f399c4c: Pushed 
6b5aaff44254: Pushed 
53a0b163e995: Pushed 
b626401ef603: Pushed 
9b55156abf26: Pushed 
293d5db30c9f: Pushed 
03127cdb479b: Pushed 
9c742cd6c7a5: Pushed 
latest: digest: sha256:68fa7d0fef4a2c8286cf195a6a7566f58f86349c5e04829f84083feae31eee99 size: 2421

成功

在这里插入图片描述

将刚刚push之前的harbor.ycz.com:8000/repo/mytest:latest删了,之后再从repo中拉取试试看

macdeMacBook-Pro:~ mac$ docker pull harbor.ycz.com:8000/repo/mytest:latest
latest: Pulling from repo/mytest
Digest: sha256:68fa7d0fef4a2c8286cf195a6a7566f58f86349c5e04829f84083feae31eee99
Status: Downloaded newer image for harbor.ycz.com:8000/repo/mytest:latest
harbor.ycz.com:8000/repo/mytest:latestWhat's Next?View summary of image vulnerabilities and recommendations → docker scout quickview harbor.ycz.com:8000/repo/mytest:latest

7、将原来的jenkins项目构建docker中改成这样

在这里插入图片描述

docker build -t mytest /var/jenkins_home/workspace/test
docker login -u admin -p Harbor12345 harbor.ycz.com:8000
docker tag mytest:latest harbor.ycz.com:8000/repo/mytest:latest
docker push harbor.ycz.com:8000/repo/mytest:latest

成功构建

在这里插入图片描述

成功push到harbor

在这里插入图片描述

8、需要在harbor服务器中编写docker构建的代码

  1. 告知服务器拉取哪个镜像
  2. 判断当前的服务器是否在进行,需要删除
  3. 如果目标服务器已经存在当前的镜像,需要删除
  4. 目标服务器拉取harbor上的镜像
  5. 将拉取下来的镜像运行成容器

vi deploy.sh

harbor_addr=$1
harbor_repo=$2
project=$3
version=$4
container_port=$5
host_port=$6imageName=$harbor_addr/$harbor_repo/$project:$versionecho $imageNamecontainerId=`docker ps -a | grep ${project} | awk '{print $1}'`echo $containerIdif [ "$containerId" != "" ] ; thendocker stop $containerIddocker rm $containerId
fitag=`docker images | grep ${project} | awk  '{print $2}'`echo $tagif [[ "$tag"  =~ "$version" ]] ; thendocker rmi $imageName
fidocker login -u admin -p Harbor12345 $harbor_addrdocker pull $imageNamedocker run -d -p $host_port:$container_port --name $project $imageNameecho "SUCCESS"

9、jenkins构建

到这里修改目标的host

在这里插入图片描述

再修改jenkins的构建

在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/ccedeb6db6e646a5bceb580d7f742706.png在这里插入图片描述

成功

在这里插入图片描述

相关文章:

Docker之jenkins部署harbor在harbor中完成部署

Docker之jenkins部署harbor在harbor中完成部署 1、harbor作用 Harbor允许用户用命令行工具对容器镜像及其他Artifact进行推送和拉取,并提供了图形管理界面帮助用户查阅和删除这些Artifact。在Harbor 2.0版本中,除容器镜像外,Harbor对符合OCI…...

安装Jenkins

一、什么是Jenkins Jenkins是一个开源软件项目,是基于Java开发的。我们可以利用Jenkins来实现持续集成的功能。 因为Jenkins是基于Java开发的,所以在安装Jenkins之前首先需要安装Java的JDK。 二、安装Jenkins 在Windows平台上面安装Jenkins共有两种方式…...

大运空瓶行动,绘就生态文明画卷

随着成都第31届世界大学生夏季运动会赛事的成功举办,为了倡导节约水资源、绿色大运,在此之前成都电视2台《城视民生》栏目面向全市发起“大运空瓶行动”的倡议,呼吁市民杜绝水资源浪费,喝完瓶中水,并鼓励市民积极参与到…...

tomcat7.exe 启动闪退解决

标题tomcat7.exe 启动闪退解决 双击tomcat7.exe启动,但是出现闪退问题,无法启动tomcat 解决: 1.解决 tomcat7.exe 启动闪退解决 第一步:双击打开tomcat7w.exe 文件 如果出现 “指定的服务未安装。 Unable to open the service ‘…...

java修改jar包中的配置文件

方法一 !!!除了以上的方式,其实也可以通过 vim 命令直接修改 jar 包配置文件的内容,然后直接保存即可,不过这种方法必须保证服务器上已经安装了 zip 和 unzip 命令。 方法二 首先需要找出你的配置文件在…...

半导体器件||的学习

电子管的介绍: 到底什么是电子管(真空管)? - 知乎 芯片破壁者(一):从电子管到晶体管“奇迹”寻踪 - 知乎 晶体管: 什么是晶体管?它有什么作用? - 知乎 改…...

jenkins流水线

1.拉取代码 https://gitee.com/Wjc_project/yygh-parent.git2、项目编译 mvn clean package -Dmaven.test.skiptrue ls hospital-manage/target3、构建镜像 ls hospital-manage/target docker build -t hospital-manage:latest -f hospital-manage/Dockerfile ./hospital-ma…...

视频监控汇聚EasyCVR平台WebRTC流地址无法播放的原因排查

开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多…...

NOSQL——redis的安装,配置与简单操作

目录 一、缓存的相关知识 1)缓存的概念 2)系统缓存 buffer与cache: 3)缓存保存位置及分层结构 DNS缓存 应用层缓存 数据层缓存 分布式缓存服务: 数据库: 硬件缓存 二、关系型数据与非关系型数据…...

《合成孔径雷达成像算法与实现》Figure3.7

代码复现如下: clc clear all close all%参数设置 TBP 100; %时间带宽积 T 10e-6; %脉冲持续时间%参数计算 B TBP/T; …...

Linux 目录结构

初学Linux,首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。home --- 存储普通用户的个人文件 ftp --- 用户所有服务httpdsambauser1user2bin --- 系统启动时需要的执行文件(二进制&#x…...

7天获英国名校邀请函|CSC青骨获批成功案例补记

Q老师要求2周内拿到邀请函且必须是世界排名前200名的高校。我们在第7天就获得了世界百强名校-英国兰卡斯特大学的邀请函,导师的研究方向完全契合,提前实现了Q老师的委托目标,使其顺利获批CSC青骨项目。特别提示:青骨项目国内派出院…...

ffmpeg ts列表合并为mp4

操作系统:ubuntu 注意事项: 1.ts文件顺序必须正确,也就是下一帧的dst和pst要比上一帧的大,否则会报错 2.codecpar->codec_tag要设置为0,否则报错Tag [27][0][0][0] incompatible with output codec id ‘27’ (avc1…...

MATLAB程序初始化OpenFOAM颗粒位置

问题引入 在OpenFOAM的颗粒两相流求解器中,我们可以采用manualInjection的方式进行自定义颗粒的初始位置,这个命令十分方便,在CFDEM中也有类似的命令,不过CFDEM中的命令更加强大,我们不仅可以定义颗粒的初始位置&…...

软件第三方CMA、CNAS测试的目的和意义,信息化建设验收测试依据是什么?

在当今互联网时代,软件的第三方CMA、CNAS测试成为了软件行业的重要环节。那么,这个测试的目的和意义是什么呢?另外,信息化建设验收测试依据又是什么呢?    一、软件测试第三方CMA、CNAS测试的目的和意义 1、研究进展 随着软件行业的迅…...

CNN成长路:从AlexNet到EfficientNet(02)

一、说明 在~10年的深度学习中,进步是多么迅速!早在 2012 年,Alexnet 在 ImageNet 上的准确率就达到了 63.3% 的 Top-1。现在,我们超过90%的EfficientNet架构和师生训练(teacher-student)。 二、第一阶段 …...

【Kubernetes】yaml文件格式

目录 YAML 语法格式: 查看 api 资源版本标签 写一个yaml文件demo 创建资源对象 查看创建的pod资源 创建service服务对外提供访问并测试 创建资源对象 查看创建的service 在浏览器输入 nodeIP:nodePort 即可访问 kubectl run --dry-runclient 打印相应的 A…...

Python web实战之Django的文件上传和处理详解

概要 关键词:Python Web开发、Django、文件上传、文件处理 今天分享一下Django的文件上传和处理。 1. 上传文件的基本原理 在开始深入讲解Django的文件上传和处理之前,先了解一下文件上传的基本原理。当用户选择要上传的文件后,该文件会被发…...

android res中values-swxxdp计算

一. res中values-swxxdp计算 以四寸中控面板为例 通过adb shell wm size获取屏幕大小为1264x1680 通过adb shell wm density获取屏幕显示密度dpi为300 最小宽度计算方法:s w 160 ∗ 手机宽度像素 / d p i sw160*手机宽度像素/dpisw160∗手机宽度像素/dpi 过公式…...

c动态内存申请

动态分配内存概述 先说数组的长度是预定义好的,固定不变的。但是呢,实际上所需的内存空间取决于实际输入的数据,而无法预先确定。所以根据实际情况,推出了内存管理函数。这些内存管理函数可以按需要动态分配内存空间,…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

Spring Boot面试题精选汇总

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

AI,如何重构理解、匹配与决策?

AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

免费数学几何作图web平台

光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...

AIGC 基础篇 Python基础 02

1.bool类型 书接上回,我们上次最后讲了三大数据类型,除了这三个之外,Python也有bool类型,也就是True和False。 a 2 print(a1) print(a2) 像这里,输出的内容第一个是False,因为a的值为2,而第…...

ai流式文字返回前端和php的处理办法

PHP后端 php端主要是用到ob_flush和flush&#xff0c;头改为流式。 基本代码 代码如下&#xff1a; <?php header(Content-Type:text/event-stream); header(Cache-Control:no-cache); header(Connection:keep-alive);function streamPostRequest($url,$data){$chcurl_…...