脚本逻辑:通过拉取git仓库中的代码,传输到打包机,docker build进行打包成容器,并推送到镜像仓库中。
部署位置:需要部署在Jenkins容器内能访问到的位置
环境配置:
1. Jenkins到打包机需要配置SSH免密,用于脚本传输代码
2. 打包机需要提前配置登录到镜像仓库
#!/bin/bash
# jenkins项目名
PROJECT_NAME=$1
# 镜像ID用于打包镜像和更新使用
IMAGE_ID=$2
# 是否使用Docker缓存
USE_CACHE="$3"
# 打包机配置,需要配置从jenkins的免密
BUILD_FRONT_HOST_IP="{BUILDER_IP}"
BUILD_FRONT_HOST_PORT={BUILDER_PORT}
# jenkins拉取代码的路径
CODE_PATH="/var/jenkins_home/workspace/$PROJECT_NAME/"
# 打包Docker镜像并推送镜像
build_docker() {
# 通过项目名称区别环境,但是最后的镜像服务名都是一样,但tag不同
echo "处理jenkins项目名称后缀"
if [[ "$PROJECT_NAME" == *"-prod" ]];then
P