docker-jenkins将打包的镜像推送到镜像仓库

1.准备好环境和远程镜像仓库

2.编写shell脚本

#!/bin/bash -il
#操作/项目路径(Dockerfile存放的路劲)
BASE_PATH=/var/jenkins_home/workspace/xrt
 
#源jar路径
 
SOURCE_PATH=/var/jenkins_home/workspace/xrt/target 
#容器id
CID=$(docker ps | grep "app" | awk '{print $1}')
 
DATE=`date +%Y%m%d%H%M`
 
 
 
#构建docker镜像
 
function build(){
	echo "开始构建镜像..."
	cd $BASE_PATH
	 docker build -t app .
}
 
 
#运行docker容器
 
function run(){
	backup
	transfer
	build
	if [ -n "$CID" ]; then
		echo "存在demo容器,CID=$CID,重启docker容器 ..."
			 docker stop $CID
			 docker rm $CID	
			 docker run -d -p 8783:8783 app
		echo "demo容器重启完成"
	else
		echo "不存在demo容器,docker run创建容器..."
			 docker run  --name app -d -p 8783:8783 app 
		echo "demo容器创建完成"
	fi
    delnone
    
    echo "push镜像到docker镜像仓库"
    docker login http://ip:6001 -u admin -p xxx
    docker tag app ip:6001/xrt/app:$DATE
    docker push ip:6001/xrt/app:$DATE
    echo "成功push镜像到docker镜像仓库"
 
}
 
#删除none镜像
 
function delnone(){
	docker rmi $(docker images -f "dangling=true" -q)
    echo "清除none镜像"
}
 
 
#入口
run 

3.推送成功后在harbor查看

如果无法推送:

        1.1 jenkins主机上的docker配置:insecure-registries ip:harbor的ip 端口为harbor的端口

vi /etc/docker/daemon.json 
{ "registry-mirrors": ["https://wb2g6zxl.mirror.aliyuncs.com"],
"insecure-registries":["192.168.43.64:5000"]
}

        1.2 然后手动输入如下命令登陆harbor进行测试:

docker login http://192.168.43.64:5000
# 输入账号密码
# 第一次登陆成功后,会把账号信息存储到文件中/root/.docker/config.json,下次再登陆的时候就不用输入账号和密码了

       

        1.3如果可以登录成功则可以再Jenkins再次构建

        1.4如果无法成功,查看harbor是否开始Jenkins服务器ip的访问权限

                阿里云在安全组中配置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值