项目打包批量上传至容器镜像服务ACR脚本
只供参考,具体个性化定制请问GPT
在要打包的模块下创建此sh文件
脚本如下:
#! /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文件
脚本如下:
#!/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
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。