构建: --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:
+21
-18
@@ -5,7 +5,9 @@ DOCKER_USER="${DOCKER_USER:-openteam}"
|
|||||||
VERSION="${VERSION:-$(git describe --tags --always 2>/dev/null || echo latest)}"
|
VERSION="${VERSION:-$(git describe --tags --always 2>/dev/null || echo latest)}"
|
||||||
PLATFORMS="linux/amd64,linux/arm64"
|
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
|
if [[ "${1:-}" == "--local" ]]; then
|
||||||
LOCAL=1
|
LOCAL=1
|
||||||
else
|
else
|
||||||
@@ -24,6 +26,24 @@ native_arch() {
|
|||||||
esac
|
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
|
if ! docker buildx version &>/dev/null; then
|
||||||
echo "❌ docker buildx 不可用"
|
echo "❌ docker buildx 不可用"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -37,22 +57,6 @@ else
|
|||||||
fi
|
fi
|
||||||
docker buildx inspect --bootstrap
|
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 "========================================"
|
echo "========================================"
|
||||||
echo "🚀 构建 openteam (${PLATFORMS})"
|
echo "🚀 构建 openteam (${PLATFORMS})"
|
||||||
@@ -66,4 +70,3 @@ else
|
|||||||
.
|
.
|
||||||
echo ""
|
echo ""
|
||||||
echo "✅ 完成!${DOCKER_USER}/openteam:${VERSION}"
|
echo "✅ 完成!${DOCKER_USER}/openteam:${VERSION}"
|
||||||
fi
|
|
||||||
|
|||||||
Reference in New Issue
Block a user