Files
Gloridust 0abb5f8bdf fix(panel): 开发版构建的版本展示,不再误标「已是最新」
本地/未发布构建(dev / dev-<sha>)无法与发布版做语义化比较,之前会错误显示
「· 已是最新」。现在:

- 「关于」卡:当前版本非 vX.Y.Z 时标「开发版」,仅把最新发布版作为信息展示
  (当前版本 dev-xxx · 最新发布 v1.2.0),不显示「已是最新」、不触发红点。
- build-local.sh 默认烤入 dev-<短SHA>(而非裸 dev),便于辨识本地构建。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 00:35:30 +08:00

34 lines
1.8 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# 本地构建面板镜像 + 微信实例镜像,打成与 docker-compose.yml 一致的 GHCR 标签。
# 用途:GHCR 尚未发布(没打 tag)时自测,或自托管者想自己构建而非拉取官方镜像。
# 构建完成后直接 `docker compose up -d` 即可(compose 默认 pull_policy=missing,会优先用本地镜像)。
#
# 用法:
# ./scripts/build-local.sh # 构建本机架构,标签 latest
# WOC_VERSION=v1.0.0 ./scripts/build-local.sh # 指定标签(需与 .env 的 WOC_VERSION 一致)
set -euo pipefail
OWNER="${WOC_IMAGE_OWNER:-gloridust}"
TAG="${WOC_VERSION:-latest}"
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
# 烤进面板镜像的版本号:设了 WOC_VERSION 就用它(如 v1.2.0),否则用 dev-<短SHA>(本地构建标识)。
# 开发版不是正式发布版,面板「关于」会标「开发版」、不会触发「有新版」红点。
VER="${WOC_VERSION:-dev-$(git -C "$ROOT" rev-parse --short HEAD 2>/dev/null || echo local)}"
PANEL_IMAGE="ghcr.io/${OWNER}/woc-panel:${TAG}"
WECHAT_IMAGE="ghcr.io/${OWNER}/wechat-on-cloud:${TAG}"
echo "==> 构建面板镜像 ${PANEL_IMAGE} (版本号 ${VER}"
docker build --build-arg "WOC_VERSION=${VER}" -t "${PANEL_IMAGE}" "${ROOT}/panel"
echo "==> 构建微信实例镜像 ${WECHAT_IMAGE}"
docker build -t "${WECHAT_IMAGE}" "${ROOT}/docker"
echo
echo "完成。本地镜像:"
# 注意:docker images 只接受一个仓库参数,故用 --filter 各列一次
docker images --filter "reference=${PANEL_IMAGE}" --format ' {{.Repository}}:{{.Tag}} {{.Size}}'
docker images --filter "reference=${WECHAT_IMAGE}" --format ' {{.Repository}}:{{.Tag}} {{.Size}}'
echo
echo "下一步:docker compose up -d (记得先把 .env 里 WOC_VERSION 设为 ${TAG}"