DockerFIle
bash
在这里插入代码片
bash
#!/bin/bash
set -euo pipefail
CURRENT_DATE=$(date +%Y%m%d%H%M%S)
PROJECT_NAME="aiwrite-modules-aiwriteapi"
TAR_FILE="${PROJECT_NAME}.tar"
# 构建新镜像
docker build -t "${PROJECT_NAME}:${CURRENT_DATE}" .
# 清理旧镜像
echo "清理旧镜像..."
OLD_IMAGES=$(docker images --format "{{.Repository}}:{{.Tag}}" --filter=reference="${PROJECT_NAME}:*" | sort -r | tail -n +3)
if [ -n "$OLD_IMAGES" ]; then
echo "删除以下旧镜像:"
echo "$OLD_IMAGES"
echo "$OLD_IMAGES" | xargs docker rmi
fi
# 显示当前镜像
docker images | grep "^${PROJECT_NAME}"
# 删除旧的 tar 文件(如果存在)
[ -f "${TAR_FILE}" ] && rm -f "${TAR_FILE}"
# 保存镜像
docker save -o "${TAR_FILE}" "${PROJECT_NAME}:${CURRENT_DATE}"
echo "镜像已保存到: ${TAR_FILE}"
echo "文件大小: $(du -h "${TAR_FILE}" | cut -f1)"