jenkins发布docker项目 harbor

大家好,我是烤鸭:

​    jenkins 部署k8s 项目还是比较流畅的,本身建立多流水线项目,在项目中添加jenkinsfile就好了,镜像需要额外的参数,还可以添加dokcerfile文件。由于我现在的问题是不能够修改原有的项目,还想利用项目中的Dockerfile打包后发布到私服仓库(Harbor)中。

构建普通maven项目

这种构建有个劣势就是只能单分支的。
在这里插入图片描述

docker 安装

yum install docker
docker -v 
[]: Docker version 19.03.4, build 9013bf583a

这里有个小坑就是docker 默认使用https链接,而局域网内ip都是http的。

vi /etc/docker/daemon.json

registry-mirrors 是下载镜像的备用镜像地址、insecure-registries 是可以使用http链接的地址。

{
  "registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com",
                      "https://registry.docker-cn.com",
                      "http://hub-mirror.c.163.com",
                      "https://tnxkcso1.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.1.1:80"],
   "bip": "192.168.2.1/24"
}

registry-mirrors 也没啥用,后来构建的时候死活拉不下来包(无论怎么改都会从 docker.io 拉包)。

在这里插入图片描述

只能手动拉下来再重命名了。

之前有个包拉不下来,frolvlad/alpine-oraclejdk8。只能先从别的镜像地址拉。

docker pull docker.mirrors.ustc.edu.cn/frolvlad/alpine-oraclejdk8

拉完了再重命名,要不每次还会从 docker.io 拉取

docker tag tnxkcso1.mirror.aliyuncs.com/frolvlad/alpine-oraclejdk docker.io/frolvlad/alpine-oraclejdk

虽然image id 一样,但是包是ok的

在这里插入图片描述

利用脚本发布

Post Steps

Execute Shell

#项目所在jenkins目录
cd /var/lib/jenkins/workspace/xxx/
#复制到指定目录
rm -rf /data/apps/xxx/*
cp ./target/*.jar /data/apps/xxx
cp ./Dockerfile /data/apps/xxx
#进入目录执行docker命令
cd /data/apps/xxx
#docker生成镜像并推送到仓库,build-arg非必填,需要看dockerfile是否有环境变量引用
docker build -t 192.168.1.1:80/xxx/xxx:v1 --build-arg "JAR_NAME=./xxx-1.0-SNAPSHOT.jar" -f ./Dockerfile .
docker login -u=admin -p=admin 192.168.1.1:80
docker push 192.168.1.1:80/xxx/xxx:v1

push到harbor这块还有个小坑,需要先在 harbor 建立项目。

比如项目名称是 AAA,你的镜像+tag 是 xxx:v1。

那么push的时候要写上全路径,不建项目是不行的!

docker push 192.168.1.1:80/xxx/xxx:v1

发布到harbor

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Jenkins是一个持续集成工具,用于自动化构建、测试和部署软件。Docker是一个开源的容器化平台,可以帮助开发人员打包应用程序和其依赖项成为一个容器。Harbor是一个企业级的Docker镜像注册表,可以帮助组织管理和存储Docker镜像。 在自动化部署流程中,Jenkins可以与DockerHarbor结合使用,实现自动化构建、打包和部署应用程序的流程。具体步骤如下: 首先,开发人员在代码仓库中提交新的代码。Jenkins会定期检测代码仓库的变化,一旦检测到新的代码提交,Jenkins就会触发自动化构建流程。 在构建过程中,Jenkins会使用Docker来创建应用程序的镜像,将应用程序和其依赖项打包成一个可移植的容器。然后,Jenkins会将构建的镜像推送到Harbor中进行存储与管理。 接下来,Jenkins会触发自动化部署流程。在部署过程中,Jenkins会从Harbor中拉取最新的镜像,并将其部署到目标环境中。这可以是测试环境、预发布环境或生产环境,具体取决于组织的部署策略。 在部署完成后,Jenkins可以执行自动化测试流程,验证应用程序在目标环境中的运行情况。如果测试通过,部署流程就会顺利完成。如果测试失败,Jenkins会通知相关人员,并触发回滚流程。 通过整合JenkinsDockerHarbor,可以实现一个端到端的自动化部署流程,帮助组织提高软件交付的效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烤鸭的世界我们不懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值