sub2api/deploy/build-push-tls-proxy.sh
win b3cb3ea345
Some checks failed
CI / test (push) Failing after 31s
CI / golangci-lint (push) Failing after 32s
Security Scan / backend-security (push) Failing after 14s
Security Scan / frontend-security (push) Failing after 32s
fix: 构建脚本路径改为 antigravity/node-tls-proxy
2026-03-25 14:36:56 +08:00

80 lines
2.3 KiB
Bash
Executable File

#!/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 "============================================="