DockerFIle

在这里插入代码片

run.sh

#!/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)"

更多推荐