diff --git a/build-docker.sh b/build-docker.sh index 53217c8..701a516 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -77,6 +77,20 @@ fi TIMESTAMP=$(TZ='Asia/Shanghai' date +"%Y-%m-%d-%Hh-%Mm") echo -e "${YELLOW}构建时间戳 (UTC+8): ${TIMESTAMP}${NC}" +# 获取 Git 提交信息用于镜像元数据 +if git rev-parse HEAD >/dev/null 2>&1; then + COMMIT_HASH=$(git rev-parse HEAD) + COMMIT_MESSAGE=$(git log -1 --pretty=%s | tr -d '\n') + COMMIT_MESSAGE=${COMMIT_MESSAGE//\"/\'} + COMMIT_MESSAGE=${COMMIT_MESSAGE//\$/\\$} +else + COMMIT_HASH="unknown" + COMMIT_MESSAGE="unknown" +fi + +echo -e "${YELLOW}Git 提交: ${COMMIT_HASH}${NC}" +echo -e "${YELLOW}提交说明: ${COMMIT_MESSAGE}${NC}" + # 镜像名称和标签 IMAGE_NAME="peipei-backend" VERSION_TAG="${TIMESTAMP}-${TARGET_ARCH}" @@ -124,6 +138,8 @@ if docker buildx build \ --load \ --cache-from="type=local,src=${CACHE_DIR}" \ --cache-to="type=local,dest=${CACHE_DIR}" \ + --label "org.opencontainers.image.revision=${COMMIT_HASH}" \ + --label "org.opencontainers.image.commit-message=${COMMIT_MESSAGE}" \ -f docker/Dockerfile \ -t "${IMAGE_NAME}:${VERSION_TAG}" \ -t "${IMAGE_NAME}:${LATEST_TAG}" \ @@ -139,6 +155,9 @@ if [[ "$BUILD_SUCCESS" == "true" ]]; then echo -e "${GREEN}镜像标签:${NC}" echo -e " - ${IMAGE_NAME}:${VERSION_TAG}" echo -e " - ${IMAGE_NAME}:${LATEST_TAG}" + echo -e "${GREEN}镜像元数据:${NC}" + echo -e " - org.opencontainers.image.revision=${COMMIT_HASH}" + echo -e " - org.opencontainers.image.commit-message=${COMMIT_MESSAGE}" echo -e "\n${YELLOW}镜像信息:${NC}" docker images | grep -E "^${IMAGE_NAME}\s"