| | #!/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 |
| | WORKFLOW=true |
| |
|
| | 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 \ |
| | --build-arg WORKFLOW=$WORKFLOW \ |
| | -t "${USER}/gpt-sovits:local" \ |
| | . |
| |
|