首页 > 其他分享 >写一个自动构建docker镜像推送至私有仓库并且部署的脚本

写一个自动构建docker镜像推送至私有仓库并且部署的脚本

时间:2024-11-16 10:46:00浏览次数:1  
标签:user TAG BUILD deployment 镜像 docker 推送 build

脚本如下

# cat build/docker.sh 
#!/usr/bin/env bash
# 获取当前分支名
BRANCH=`git rev-parse --abbrev-ref HEAD`
# 获取git提交的标识符用于Docker镜像的标签 
BUILD_TAG="$(git rev-parse --short $BRANCH)"
HARBOR_URL="harbor.xxx.com"
echo "Tag is ${BUILD_TAG}"
# 获取当前的绝对路径
PROJECT_HOME=$(pwd)
# 定义Docker镜像名
APP_NAME="classroom_python"
# 导入有Harbor权限的用户名和密码
if [ ! -f "${PROJECT_HOME}/build/user.sh" ]; then
  echo "please import docker user info..."
  exit
fi

. "${PROJECT_HOME}"/build/user.sh
#  构建Docker镜像并且打一个tag
docker build . -t ${HARBOR_URL}/app/"${APP_NAME}":"${BUILD_TAG}"
# 登录私有Harbor
docker login -u "${hub_user}" -p "${hub_password}" harbor.xiaoxingcloud.com
# 推送Docker镜像
docker push ${HARBOR_URL}/app/"${APP_NAME}":"${BUILD_TAG}"
# 登出Harbor私有仓库
# docker logout 
# 修改deployment配置文件
sed  "s#<BUILD_TAG>#${BUILD_TAG}#g" build/deployment.yaml  > ./deployment.yaml
# 应用文件部署
kubectl apply -f deployment.yaml

前提条件

  • Dockerfile配置文件已经配置好了
  • user.sh设置了harbor仓库的用户名和密码信息
  • deployment配置文件可以正常运行
  • 运行脚本的用户有调用k8s集群的权限

标签:user,TAG,BUILD,deployment,镜像,docker,推送,build
From: https://www.cnblogs.com/minseo/p/18549131

相关文章

  • docker基础:搭建centos7(详见B站泷羽sec)
    docker的简单学习:sudoapt-getupdate                //这个命令让系统检查有没有新软件sudoapt-getinstalldocker.io       //安装Dockersudodockerversion                        //查看是否安装成功,显示dock......
  • 自动化构建镜像:Packer
    在介绍Packer之前,先来回顾一下未使用Packer时自定义虚拟机镜像的步骤。先在本地启动一个虚拟机,从安装系统开始,再进行自定义配置或应用安装,最后封装压缩成镜像,详细操作步骤可以参考我之前写的文档,制作Centos7镜像:https://robin-2016.github.io/2019/04/08/制作openstack的centos7......
  • Docker不再神秘 ------Ubuntu20.04 安装Docker 及实用技巧,建议收藏
    Dockerdocker是一种容器,简而言之就是别人把一堆环境配置好了,你可以下载下来直接拿来使用(我的个人理解),有点像虚拟机你知道吧。比如下面这样,我直接打开了一个小电脑(docker),里面桌面啊、root啊全都有,跟你ubuntu系统类似,单说细节还不完全一样,毕竟它轻便哈哈……也有一些对比这下......
  • Docker环境搭建CUDA12.2 + Yolov5 7.0 GPU训练环境(单卡训练)
    1、建立Docker容器,指定Shm共享内存。dockerrun-d-it--nameyolov5--gpusall-p20000:22--shm-size16gdockerproxy.cn/nvidia/cuda:12.2.0-devel-ubuntu22.042、进入容器,升级安装器aptdockerexec-itf7383b766c6d/bin/bashapt-getupdateapt-getinstallvim3......
  • 记一次react+node+nginx+mysql+docker发布
    简言这是为了给老婆工作上算培训班课时,计算课销更方便点的CRM(纸质档转线上)准备工作React项目Node项目(express,koa任意选择)一台服务器(如果你是纯手工发布,服务器选择倒是无所谓,如果要结合docker的话,请选择国外服务器或者香港也行,阿里云就算了,我自己最开始用的阿里云,docker根本p......
  • 主机和Docker容器之间的文件互传方法
    Docker渐渐成为前端的一个工具,它像一个通用包装,可以把各种环境包裹其中,从而实现跨设备的兼容。使用的过程中,往往会需要将本地的文件和docker容器内部的文件互传:将主机的文件传递给容器内,让里面的工具读写;将容器内的文件拷贝出来,修改了再传入...一、主机到Docker容器/镜像的文......
  • 一种实现docker容器嵌套的方法
    【背景】   有个用户需要在docker容器中再运行一个容器,实现容器嵌套,研究了下,可以这样来实现。 【方法】1.在系统上先安装一个docker服务,我的版本是20.10.17[root@testkvm~]#rpm-qa|grepdockerdocker-ce-20.10.17-3.el7.x86_64docker-ce-cli-20.10.17-3.el7.......
  • dockerfile中cmd和entrypoint的区别
    cmd语法TheCMDinstructionhasthreeforms:CMD["executable","param1","param2"](execform,thisisthepreferredform)CMD["param1","param2"](asdefaultparameterstoENTRYPOINT)CMDcommandparam1par......
  • 5分钟上手 Docker:镜像优化
    Docker是一种流行的容器化技术,它允许开发者将应用程序及其所有依赖打包成一个标准化的单元——镜像。优化Docker镜像不仅能减小镜像的体积,提高下载和部署速度,还能增强安全性。在本文中,我们将介绍一些镜像优化的技巧,帮助你在5分钟内快速上手Docker镜像的优化。1.使用合适......
  • Z-Library入口网站 zlibrary国内可访问镜像地址(长期更新)
    Z-Library(简称z-lib,前身为BookFinder)是一个影子图书馆和开放获取文件分享计划,用户可在此网络下载期刊文章以及各种类型的书籍。截止2022年6月12日,该网站共收录了10,456,034本书和84,837,646篇文章。不过似乎很多用户还不知道,仍在使用一些不安全的仿冒山寨网站,甚至钓鱼网站。......