mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-02 04:20:50 +08:00
53 lines
2.0 KiB
PowerShell
53 lines
2.0 KiB
PowerShell
# build.ps1 - Windows PowerShell Build Script
|
|
#
|
|
# This script automates the process of building and running the Docker container
|
|
# with version information dynamically injected at build time.
|
|
|
|
# Stop script execution on any error
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
# --- Step 1: Choose Environment ---
|
|
Write-Host "Please select an option:"
|
|
Write-Host "1) Run using Pre-built Image (Recommended)"
|
|
Write-Host "2) Build from Source and Run (For Developers)"
|
|
$choice = Read-Host -Prompt "Enter choice [1-2]"
|
|
|
|
# --- Step 2: Execute based on choice ---
|
|
switch ($choice) {
|
|
"1" {
|
|
Write-Host "--- Running with Pre-built Image ---"
|
|
docker compose up -d --remove-orphans --no-build
|
|
Write-Host "Services are starting from remote image."
|
|
Write-Host "Run 'docker compose logs -f' to see the logs."
|
|
}
|
|
"2" {
|
|
Write-Host "--- Building from Source and Running ---"
|
|
|
|
# Get Version Information
|
|
$VERSION = (git describe --tags --always --dirty)
|
|
$COMMIT = (git rev-parse --short HEAD)
|
|
$BUILD_DATE = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
|
|
|
|
Write-Host "Building with the following info:"
|
|
Write-Host " Version: $VERSION"
|
|
Write-Host " Commit: $COMMIT"
|
|
Write-Host " Build Date: $BUILD_DATE"
|
|
Write-Host "----------------------------------------"
|
|
|
|
# Build and start the services with a local-only image tag
|
|
$env:CLI_PROXY_IMAGE = "cli-proxy-api:local"
|
|
|
|
Write-Host "Building the Docker image..."
|
|
docker compose build --build-arg VERSION=$VERSION --build-arg COMMIT=$COMMIT --build-arg BUILD_DATE=$BUILD_DATE
|
|
|
|
Write-Host "Starting the services..."
|
|
docker compose up -d --remove-orphans --pull never
|
|
|
|
Write-Host "Build complete. Services are starting."
|
|
Write-Host "Run 'docker compose logs -f' to see the logs."
|
|
}
|
|
default {
|
|
Write-Host "Invalid choice. Please enter 1 or 2."
|
|
exit 1
|
|
}
|
|
} |