diff --git a/scripts/build-image.sh b/scripts/build-image.sh index c4e3890..8315b31 100755 --- a/scripts/build-image.sh +++ b/scripts/build-image.sh @@ -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 \ - --platform "${PLATFORMS}" \ - -t "${DOCKER_USER}/openteam:${VERSION}" \ - -t "${DOCKER_USER}/openteam:latest" \ - --push \ - . - echo "" - echo "✅ 完成!${DOCKER_USER}/openteam:${VERSION}" -fi +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}"