Team Ai
Modelpublic

ParallelLLC/algorithmic_trading

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
27likes36downloads
docker-build.sh187 linesDownload Raw Back to scripts
1#!/bin/bash2 3# Colors for output4RED='\033[0;31m'5GREEN='\033[0;32m'6YELLOW='\033[1;33m'7BLUE='\033[0;34m'8NC='\033[0m' # No Color9 10# Function to print colored output11print_status() {12    echo -e "${BLUE}[INFO]${NC} $1"13}14 15print_success() {16    echo -e "${GREEN}[SUCCESS]${NC} $1"17}18 19print_warning() {20    echo -e "${YELLOW}[WARNING]${NC} $1"21}22 23print_error() {24    echo -e "${RED}[ERROR]${NC} $1"25}26 27# Function to build the Docker image28build_image() {29    print_status "Building Docker image..."30    docker build -t algorithmic-trading:latest .31    if [ $? -eq 0 ]; then32        print_success "Docker image built successfully"33    else34        print_error "Failed to build Docker image"35        exit 136    fi37}38 39# Function to run tests in Docker40run_tests() {41    print_status "Running tests in Docker..."42    docker run --rm -v $(pwd):/app algorithmic-trading:latest pytest -v43    if [ $? -eq 0 ]; then44        print_success "Tests passed"45    else46        print_error "Tests failed"47        exit 148    fi49}50 51# Function to start development environment52start_dev() {53    print_status "Starting development environment..."54    docker-compose -f docker-compose.dev.yml up -d55    print_success "Development environment started"56    print_status "Jupyter Lab available at: http://localhost:8888"57    print_status "Trading system available at: http://localhost:8000"58    print_status "TensorBoard available at: http://localhost:6006"59}60 61# Function to start production environment62start_prod() {63    print_status "Starting production environment..."64    docker-compose -f docker-compose.prod.yml up -d65    print_success "Production environment started"66    print_status "Trading system available at: http://localhost:8000"67    print_status "Grafana available at: http://localhost:3000 (admin/admin)"68    print_status "Prometheus available at: http://localhost:9090"69}70 71# Function to stop all containers72stop_all() {73    print_status "Stopping all containers..."74    docker-compose -f docker-compose.yml down75    docker-compose -f docker-compose.dev.yml down76    docker-compose -f docker-compose.prod.yml down77    print_success "All containers stopped"78}79 80# Function to clean up Docker resources81cleanup() {82    print_status "Cleaning up Docker resources..."83    docker system prune -f84    docker volume prune -f85    print_success "Cleanup completed"86}87 88# Function to show logs89show_logs() {90    local service=${1:-trading-system}91    print_status "Showing logs for $service..."92    docker-compose logs -f $service93}94 95# Function to run a specific command in the container96run_command() {97    local command="$1"98    print_status "Running command: $command"99    docker run --rm -v $(pwd):/app algorithmic-trading:latest $command100}101 102# Function to show help103show_help() {104    echo "Usage: $0 [COMMAND]"105    echo ""106    echo "Commands:"107    echo "  build       Build the Docker image"108    echo "  test        Run tests in Docker"109    echo "  dev         Start development environment"110    echo "  prod        Start production environment"111    echo "  hub         Start using Docker Hub images"112    echo "  stop        Stop all containers"113    echo "  cleanup     Clean up Docker resources"114    echo "  logs [SVC]  Show logs for a service (default: trading-system)"115    echo "  run CMD     Run a specific command in the container"116    echo "  deploy      Deploy to Docker Hub (requires docker-hub-deploy.sh)"117    echo "  help        Show this help message"118    echo ""119    echo "Examples:"120    echo "  $0 build"121    echo "  $0 dev"122    echo "  $0 hub"123    echo "  $0 logs"124    echo "  $0 run 'python demo.py'"125    echo "  $0 deploy"126}127 128# Main script logic129case "${1:-help}" in130    build)131        build_image132        ;;133    test)134        build_image135        run_tests136        ;;137    dev)138        build_image139        start_dev140        ;;141    prod)142        build_image143        start_prod144        ;;145    stop)146        stop_all147        ;;148    cleanup)149        cleanup150        ;;151    logs)152        show_logs $2153        ;;154    run)155        if [ -z "$2" ]; then156            print_error "No command specified"157            show_help158            exit 1159        fi160        build_image161        run_command "$2"162        ;;163    hub)164        print_status "Starting services using Docker Hub images..."165        if [ -z "$DOCKER_USERNAME" ]; then166            print_error "DOCKER_USERNAME environment variable not set"167            print_status "Please set it: export DOCKER_USERNAME=yourusername"168            exit 1169        fi170        docker compose -f docker-compose.hub.yml up -d171        print_success "Docker Hub services started"172        print_status "Trading system available at: http://localhost:8000"173        print_status "Jupyter Lab available at: http://localhost:8888"174        ;;175    deploy)176        print_status "Deploying to Docker Hub..."177        if [ -f "scripts/docker-hub-deploy.sh" ]; then178            ./scripts/docker-hub-deploy.sh "$@"179        else180            print_error "docker-hub-deploy.sh not found"181            exit 1182        fi183        ;;184    help|*)185        show_help186        ;;187esac