| #!/bin/bash |
|
|
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)" |
|
|
| cd "$SCRIPT_DIR" || exit 1 |
|
|
| set -e |
|
|
| if ! command -v docker &>/dev/null; then |
| echo "Docker Not Found" |
| exit 1 |
| fi |
|
|
| trap 'echo "Error Occured at \"$BASH_COMMAND\" with exit code $?"; exit 1' ERR |
|
|
| LITE=false |
| CUDA_VERSION=12.6 |
|
|
| print_help() { |
| echo "Usage: bash docker_build.sh [OPTIONS]" |
| echo "" |
| echo "Options:" |
| echo " --cuda 12.6|12.8 Specify the CUDA VERSION (REQUIRED)" |
| echo " --lite Build a Lite Image" |
| echo " -h, --help Show this help message and exit" |
| echo "" |
| echo "Examples:" |
| echo " bash docker_build.sh --cuda 12.6 --funasr --faster-whisper" |
| } |
|
|
| |
| if [[ $# -eq 0 ]]; then |
| print_help |
| exit 0 |
| fi |
|
|
| |
| while [[ $# -gt 0 ]]; do |
| case "$1" in |
| --cuda) |
| case "$2" in |
| 12.6) |
| CUDA_VERSION=12.6 |
| ;; |
| 12.8) |
| CUDA_VERSION=12.8 |
| ;; |
| *) |
| echo "Error: Invalid CUDA_VERSION: $2" |
| echo "Choose From: [12.6, 12.8]" |
| exit 1 |
| ;; |
| esac |
| shift 2 |
| ;; |
| --lite) |
| LITE=true |
| shift |
| ;; |
| *) |
| echo "Unknown Argument: $1" |
| echo "Use -h or --help to see available options." |
| exit 1 |
| ;; |
| esac |
| done |
|
|
| TARGETPLATFORM=$(uname -m | grep -q 'x86' && echo "linux/amd64" || echo "linux/arm64") |
|
|
| if [ $LITE = true ]; then |
| TORCH_BASE="lite" |
| else |
| TORCH_BASE="full" |
| fi |
|
|
| docker build \ |
| --build-arg CUDA_VERSION=$CUDA_VERSION \ |
| --build-arg LITE=$LITE \ |
| --build-arg TARGETPLATFORM="$TARGETPLATFORM" \ |
| --build-arg TORCH_BASE=$TORCH_BASE \ |
| -t "${USER}/gpt-sovits:local" \ |
| . |
|
|