构建: --local 改用 docker build 绕开 docker-container 驱动

multiarch builder 嵌套创建构建容器在受限环境报 "can't mask dir
/proc/acpi";本地单架构无需 buildx,直接 docker build 更稳。
多架构 --push 路径保持不变(仍须 docker-container builder)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Sakurasan
2026-08-18 20:49:45 +08:00
co-authored by Claude
parent ea7f023228
commit b5fb947a5b
+29 -26
View File
@@ -5,7 +5,9 @@ DOCKER_USER="${DOCKER_USER:-openteam}"
VERSION="${VERSION:-$(git describe --tags --always 2>/dev/null || echo latest)}"
PLATFORMS="linux/amd64,linux/arm64"
# --local:本地构建不推送(单架构,加载到本地 docker,tag 不带仓库前缀)
# --local:本地构建不推送(默认 docker driver,单架构,tag 不带仓库前缀)。
# 不用 buildx docker-container builder——嵌套创建容器在受限环境会报
# "can't mask dir /proc/acpi",普通 docker build 无此问题。
if [[ "${1:-}" == "--local" ]]; then
LOCAL=1
else
@@ -24,6 +26,24 @@ native_arch() {
esac
}
# ---------- 本地模式:单架构,加载到本地 docker ----------
if [[ $LOCAL -eq 1 ]]; then
PLATFORM="$(native_arch)"
echo ""
echo "========================================"
echo "🚀 本地构建 openteam (${PLATFORM})"
echo " tag: openteam:${VERSION}"
echo "========================================"
docker build \
-t "openteam:${VERSION}" \
-t "openteam:latest" \
.
echo ""
echo "✅ 完成!openteam:${VERSION}(已加载到本地 docker)"
exit 0
fi
# ---------- 多架构推送模式:需要 buildx docker-container builder ----------
if ! docker buildx version &>/dev/null; then
echo "❌ docker buildx 不可用"
exit 1
@@ -37,33 +57,16 @@ else
fi
docker buildx inspect --bootstrap
if [[ $LOCAL -eq 1 ]]; then
PLATFORM="$(native_arch)"
echo ""
echo "========================================"
echo "🚀 本地构建 openteam (${PLATFORM})"
echo " tag: openteam:${VERSION}"
echo "========================================"
docker buildx build \
--platform "${PLATFORM}" \
-t "openteam:${VERSION}" \
-t "openteam:latest" \
--load \
.
echo ""
echo "✅ 完成!openteam:${VERSION}(已加载到本地 docker)"
else
echo ""
echo "========================================"
echo "🚀 构建 openteam (${PLATFORMS})"
echo " tag: ${DOCKER_USER}/openteam:${VERSION}"
echo "========================================"
docker buildx build \
echo ""
echo "========================================"
echo "🚀 构建 openteam (${PLATFORMS})"
echo " tag: ${DOCKER_USER}/openteam:${VERSION}"
echo "========================================"
docker buildx build \
--platform "${PLATFORMS}" \
-t "${DOCKER_USER}/openteam:${VERSION}" \
-t "${DOCKER_USER}/openteam:latest" \
--push \
.
echo ""
echo "✅ 完成!${DOCKER_USER}/openteam:${VERSION}"
fi
echo ""
echo "✅ 完成!${DOCKER_USER}/openteam:${VERSION}"