| # Diagnostic Scripts |
|
|
| This directory contains diagnostic scripts used to troubleshoot issues with the Folio application, particularly when running in a Docker container. |
|
|
| ## Available Scripts |
|
|
| ### `run_diagnostics.sh` |
| |
| A shell script that runs all diagnostic scripts on a running Docker container. |
| |
| **Usage:** |
| ```bash |
| ./run_diagnostics.sh [container_name] |
| ``` |
| |
| If `container_name` is not provided, it defaults to "omninmo-folio-1". |
|
|
| ### `check_modules.py` |
| |
| Checks for the availability and versions of Python modules required by the Folio application. |
| |
| **Usage:** |
| ```bash |
| python check_modules.py |
| ``` |
| |
| **In Docker:** |
| ```bash |
| docker exec omninmo-folio-1 python /app/scripts/check_modules.py |
| ``` |
| |
| ### `check_network.py` |
|
|
| Tests network connectivity from inside a Docker container, including binding to different interfaces and testing external connectivity. |
|
|
| **Usage:** |
| ```bash |
| python check_network.py [--bind-test] [--external-test] |
| ``` |
|
|
| **In Docker:** |
| ```bash |
| docker exec omninmo-folio-1 python /app/scripts/check_network.py |
| ``` |
|
|
| ### `test_imports.py` |
| |
| Tests importing various modules used by the Folio application to diagnose import-related issues. |
| |
| **Usage:** |
| ```bash |
| python test_imports.py |
| ``` |
| |
| **In Docker:** |
| ```bash |
| docker exec omninmo-folio-1 python /app/scripts/test_imports.py |
| ``` |
| |
| ## Common Issues |
| |
| These scripts were created to diagnose the following common issues: |
| |
| 1. **Module Import Errors**: Problems with Python module imports, particularly with the project structure in a Docker container. |
| |
| 2. **Network Binding Issues**: Issues with the application binding to the correct network interface inside the container. |
| |
| 3. **Dependency Problems**: Missing or incompatible dependencies. |
| |
| ## Adding New Scripts |
| |
| When adding new diagnostic scripts, please follow these guidelines: |
| |
| 1. Include a detailed docstring explaining the purpose of the script |
| 2. Add usage examples, both for local execution and in Docker |
| 3. Make the script executable (`chmod +x script_name.py`) |
| 4. Update this README with information about the new script |
|
|