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

脚本如下

# 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集群的权限
posted @ 2024-11-16 10:56  minseo  阅读(3)  评论(0编辑  收藏  举报