Spaces:
Runtime error
Runtime error
| # PURPOSE: | |
| # One command manager for Docker-based KnowFlow AI workflow. | |
| # | |
| # USAGE: | |
| # | |
| # chmod +x scripts/docker_manager.sh | |
| # | |
| # ./scripts/docker_manager.sh build | |
| # ./scripts/docker_manager.sh start | |
| # ./scripts/docker_manager.sh stop | |
| # ./scripts/docker_manager.sh restart | |
| # ./scripts/docker_manager.sh rebuild | |
| # ./scripts/docker_manager.sh test | |
| # ./scripts/docker_manager.sh demo | |
| # ./scripts/docker_manager.sh shell | |
| # ./scripts/docker_manager.sh logs | |
| # ./scripts/docker_manager.sh streamlit | |
| # ./scripts/docker_manager.sh restart-ui | |
| # ./scripts/docker_manager.sh status | |
| # ============================================================ | |
| #!/bin/bash | |
| set -e | |
| PROJECT_NAME="KnowFlow AI" | |
| DEV_SERVICE="knowflow-dev" | |
| STREAMLIT_SERVICE="knowflow-streamlit" | |
| print_line() { | |
| echo "============================================================" | |
| } | |
| print_title() { | |
| print_line | |
| echo "$1" | |
| print_line | |
| } | |
| check_env_file() { | |
| if [ ! -f ".env" ]; then | |
| print_title "WARNING: .env file not found" | |
| echo "Creating .env from .env.example..." | |
| cp .env.example .env | |
| echo | |
| echo "IMPORTANT:" | |
| echo "Open .env and add your real CLOUD_API_KEY before running the app." | |
| echo | |
| fi | |
| } | |
| build_image() { | |
| check_env_file | |
| print_title "Building Docker image for $PROJECT_NAME" | |
| docker compose build | |
| } | |
| start_dev() { | |
| check_env_file | |
| print_title "Starting JupyterLab development container" | |
| docker compose up "$DEV_SERVICE" | |
| } | |
| start_streamlit() { | |
| check_env_file | |
| print_title "Starting Streamlit demo application" | |
| docker compose --profile streamlit up "$STREAMLIT_SERVICE" | |
| } | |
| stop_all() { | |
| print_title "Stopping Docker containers" | |
| docker compose down | |
| } | |
| restart_streamlit() { | |
| print_title "Restarting Streamlit demo application" | |
| docker compose down | |
| docker compose --profile streamlit up "$STREAMLIT_SERVICE" | |
| } | |
| rebuild_all() { | |
| check_env_file | |
| print_title "Rebuilding Docker image from scratch" | |
| docker compose down | |
| docker compose build --no-cache | |
| docker compose --profile streamlit up "$STREAMLIT_SERVICE" | |
| } | |
| run_tests() { | |
| check_env_file | |
| print_title "Running tests inside Docker" | |
| docker compose run --rm "$DEV_SERVICE" pytest tests/ | |
| } | |
| run_phase2_demo() { | |
| check_env_file | |
| print_title "Running Phase 2 modular RAG demo inside Docker" | |
| docker compose run --rm "$DEV_SERVICE" python scripts/run_phase2_demo.py | |
| } | |
| open_shell() { | |
| check_env_file | |
| print_title "Opening shell inside Docker container" | |
| docker compose run --rm "$DEV_SERVICE" bash | |
| } | |
| show_logs() { | |
| print_title "Showing Docker logs" | |
| docker compose logs -f | |
| } | |
| show_status() { | |
| print_title "Docker status" | |
| docker ps | |
| echo | |
| docker compose ps | |
| } | |
| clean_docker() { | |
| print_title "Cleaning stopped containers and unused Docker cache" | |
| docker compose down | |
| docker system prune -f | |
| } | |
| show_help() { | |
| print_title "$PROJECT_NAME Docker Manager" | |
| echo "Usage:" | |
| echo | |
| echo "./scripts/docker_manager.sh build # Build Docker image" | |
| echo "./scripts/docker_manager.sh start # Start JupyterLab" | |
| echo "./scripts/docker_manager.sh streamlit # Start Streamlit app" | |
| echo "./scripts/docker_manager.sh stop # Stop containers" | |
| echo "./scripts/docker_manager.sh restart-ui # Restart Streamlit app" | |
| echo "./scripts/docker_manager.sh rebuild # Full rebuild and start Streamlit" | |
| echo "./scripts/docker_manager.sh test # Run pytest inside Docker" | |
| echo "./scripts/docker_manager.sh demo # Run Phase 2 RAG CLI demo" | |
| echo "./scripts/docker_manager.sh shell # Open Docker shell" | |
| echo "./scripts/docker_manager.sh logs # Show Docker logs" | |
| echo "./scripts/docker_manager.sh status # Show Docker status" | |
| echo "./scripts/docker_manager.sh clean # Clean Docker cache" | |
| echo | |
| } | |
| COMMAND="$1" | |
| case "$COMMAND" in | |
| build) | |
| build_image | |
| ;; | |
| start) | |
| start_dev | |
| ;; | |
| streamlit) | |
| start_streamlit | |
| ;; | |
| stop) | |
| stop_all | |
| ;; | |
| restart-ui) | |
| restart_streamlit | |
| ;; | |
| rebuild) | |
| rebuild_all | |
| ;; | |
| test) | |
| run_tests | |
| ;; | |
| demo) | |
| run_phase2_demo | |
| ;; | |
| shell) | |
| open_shell | |
| ;; | |
| logs) | |
| show_logs | |
| ;; | |
| status) | |
| show_status | |
| ;; | |
| clean) | |
| clean_docker | |
| ;; | |
| *) | |
| show_help | |
| ;; | |
| esac |