只供参考,具体个性化定制请问GPT

在要打包的模块下创建此sh文件

2024-03-22T02:36:50.png

脚本如下:

    #! /bin/bash
    ENV=prod
    RESOURCE_NAME=项目包名
    VERSION=版本号
    repository_name=镜像目录
    DOCKER_IMAGE_URL=镜像地址
    DOCKER_REGISTRY=${DOCKER_IMAGE_URL}/${repository_name}
    
    echo "build docker image......"
    echo "copy ${RESOURCE_NAME}.jar"
    cp ../target/${RESOURCE_NAME}.jar  .
    echo "copy success"
    
    docker build -t ${RESOURCE_NAME}:${VERSION} .
    echo "build success ${RESOURCE_NAME}:${VERSION}"
    
    echo "docker registry login"
    docker login --username=账号 --password=密码 ${DOCKER_IMAGE_URL}
    
    echo "start push image ${RESOURCE_NAME}:${VERSION}"
    docker tag ${RESOURCE_NAME}:${VERSION} ${DOCKER_REGISTRY}:${VERSION}
    docker push ${DOCKER_REGISTRY}:${VERSION}
    if [ $? -eq 0 ]; then
     echo "push success"
    else
     echo "push failed"
    fi
    
    echo "delete image ${RESOURCE_NAME}:${VERSION}"
    docker rmi ${RESOURCE_NAME}:${VERSION}
    echo "delete image success"
    
    echo "delete image ${DOCKER_REGISTRY}:${VERSION}"
    docker rmi ${DOCKER_REGISTRY}:${VERSION}
    echo "delete image success"

在项目根目录下创建此sh文件

2024-03-22T02:41:52.png

脚本如下:

#!/bin/bash

# 存储成功执行的文件列表

    success_list=()
    
    # 查找带有 "docker" 子目录的.sh文件
    find . -type d -name "docker" -exec sh -c 'for file in "{}"/*prod*.sh; do
        if [ -f "$file" ]; then
            # 获取.sh文件所在的目录
            script_dir=$(dirname "$file")
    
            # 进入.sh文件所在的目录,然后执行.sh文件
            (cd "$script_dir" && sh ./*prod*.sh)
    
            # 检查执行是否成功
            if [ $? -eq 0 ]; then
                echo "成功执行 $file"
                success_list+=("$file")
            else
                echo "执行 $file 失败"
            fi
        fi
    done' \;
    
    # 输出成功执行的文件列表
    echo "成功执行的文件列表:"
    for file in "${success_list[@]}"; do
        echo "$file"
    done

文章目录