#!/bin/bash # ============================================================================= # Build and push node-tls-proxy multi-arch image # ============================================================================= # Usage: # ./build-push.sh # build + push latest # ./build-push.sh v1.0.0 # build + push with tag # ./build-push.sh --local # build locally only (no push) # # Prerequisites: # docker login # login to Docker Hub first # docker buildx create --use # enable multi-arch builds (one-time) # ============================================================================= set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" CONTEXT_DIR="${SCRIPT_DIR}/../antigravity/node-tls-proxy" IMAGE="zfc931912343/sub2api-tls-proxy" PLATFORMS="linux/amd64,linux/arm64" TAG="${1:-latest}" PUSH=true if [ "$TAG" = "--local" ]; then TAG="latest" PUSH=false fi echo "=============================================" echo " Node.js TLS Proxy Image Builder" echo "=============================================" echo " Image: ${IMAGE}:${TAG}" echo " Platforms: ${PLATFORMS}" echo " Push: ${PUSH}" echo " Context: ${CONTEXT_DIR}" echo "=============================================" # Verify context if [ ! -f "${CONTEXT_DIR}/proxy.js" ]; then echo "ERROR: proxy.js not found in ${CONTEXT_DIR}" exit 1 fi if [ "$PUSH" = true ]; then echo "" echo "[1/2] Building multi-arch image..." docker buildx build \ --platform "${PLATFORMS}" \ --tag "${IMAGE}:${TAG}" \ --tag "${IMAGE}:latest" \ --push \ --file "${CONTEXT_DIR}/Dockerfile" \ "${CONTEXT_DIR}" echo "" echo "[2/2] Verifying..." docker manifest inspect "${IMAGE}:${TAG}" | head -20 else echo "" echo "[1/1] Building local image (current arch only)..." docker build \ --tag "${IMAGE}:${TAG}" \ --file "${CONTEXT_DIR}/Dockerfile" \ "${CONTEXT_DIR}" fi echo "" echo "=============================================" echo " Done!" if [ "$PUSH" = true ]; then echo " Pushed: ${IMAGE}:${TAG}" echo " Pushed: ${IMAGE}:latest" echo "" echo " Cloud deploy:" echo " cd deploy" echo " docker compose -f docker-compose.yml -f docker-compose.tls-proxy.yml up -d" fi echo "============================================="