42 lines
1.2 KiB
Bash
Executable File
42 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
||
set -e # 当任何命令失败时立即退出脚本
|
||
|
||
# 定义镜像名称和标签
|
||
IMAGE_NAME="user-update-password-api"
|
||
IMAGE_TAG="1.0.0"
|
||
FULL_IMAGE="${IMAGE_NAME}:${IMAGE_TAG}"
|
||
TAR_FILE="${IMAGE_NAME}-${IMAGE_TAG}.tar"
|
||
|
||
echo "开始删除现有镜像 ${FULL_IMAGE}..."
|
||
if sudo docker rmi -f "${FULL_IMAGE}" >/dev/null 2>&1; then
|
||
echo "镜像 ${FULL_IMAGE} 删除成功"
|
||
else
|
||
echo "镜像 ${FULL_IMAGE} 不存在,跳过删除步骤"
|
||
fi
|
||
|
||
echo "开始构建新镜像 ${FULL_IMAGE}..."
|
||
if sudo docker build -t "${FULL_IMAGE}" .; then
|
||
echo "镜像 ${FULL_IMAGE} 构建成功!"
|
||
else
|
||
echo "错误:镜像构建失败" >&2
|
||
exit 1
|
||
fi
|
||
|
||
echo "开始处理镜像压缩包..."
|
||
# 如果存在同名压缩包则删除
|
||
if [ -f "${TAR_FILE}" ]; then
|
||
echo "发现现有压缩包 ${TAR_FILE},正在删除..."
|
||
rm -f "${TAR_FILE}"
|
||
fi
|
||
|
||
# 打包镜像为tar文件
|
||
echo "开始将镜像 ${FULL_IMAGE} 打包为 ${TAR_FILE}..."
|
||
if sudo docker save -o "${TAR_FILE}" "${FULL_IMAGE}"; then
|
||
echo "镜像打包成功!生成文件:${TAR_FILE}"
|
||
# 添加最高级别的可读写权限
|
||
sudo chmod 777 "${TAR_FILE}"
|
||
echo "已为 ${TAR_FILE} 设置最高权限(777)"
|
||
else
|
||
echo "错误:镜像打包失败" >&2
|
||
exit 1
|
||
fi |