mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-02 04:20:50 +08:00
58 lines
1.8 KiB
Bash
58 lines
1.8 KiB
Bash
#!/usr/bin/env bash
|
|
#
|
|
# build.sh - Linux/macOS Build Script
|
|
#
|
|
# This script automates the process of building and running the Docker container
|
|
# with version information dynamically injected at build time.
|
|
|
|
# Exit immediately if a command exits with a non-zero status.
|
|
set -euo pipefail
|
|
|
|
# --- Step 1: Choose Environment ---
|
|
echo "Please select an option:"
|
|
echo "1) Run using Pre-built Image (Recommended)"
|
|
echo "2) Build from Source and Run (For Developers)"
|
|
read -r -p "Enter choice [1-2]: " choice
|
|
|
|
# --- Step 2: Execute based on choice ---
|
|
case "$choice" in
|
|
1)
|
|
echo "--- Running with Pre-built Image ---"
|
|
docker compose up -d --remove-orphans --no-build
|
|
echo "Services are starting from remote image."
|
|
echo "Run 'docker compose logs -f' to see the logs."
|
|
;;
|
|
2)
|
|
echo "--- Building from Source and Running ---"
|
|
|
|
# Get Version Information
|
|
VERSION="$(git describe --tags --always --dirty)"
|
|
COMMIT="$(git rev-parse --short HEAD)"
|
|
BUILD_DATE="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
|
|
echo "Building with the following info:"
|
|
echo " Version: ${VERSION}"
|
|
echo " Commit: ${COMMIT}"
|
|
echo " Build Date: ${BUILD_DATE}"
|
|
echo "----------------------------------------"
|
|
|
|
# Build and start the services with a local-only image tag
|
|
export CLI_PROXY_IMAGE="cli-proxy-api:local"
|
|
|
|
echo "Building the Docker image..."
|
|
docker compose build \
|
|
--build-arg VERSION="${VERSION}" \
|
|
--build-arg COMMIT="${COMMIT}" \
|
|
--build-arg BUILD_DATE="${BUILD_DATE}"
|
|
|
|
echo "Starting the services..."
|
|
docker compose up -d --remove-orphans --pull never
|
|
|
|
echo "Build complete. Services are starting."
|
|
echo "Run 'docker compose logs -f' to see the logs."
|
|
;;
|
|
*)
|
|
echo "Invalid choice. Please enter 1 or 2."
|
|
exit 1
|
|
;;
|
|
esac |