Docker Integration π³ΒΆ
For maximum reproducibility and ease of deployment, Fishy Business can be run entirely within a Docker container. This ensures that all dependencies (including complex C-libraries for spectral analysis) are correctly configured.
Building the ImageΒΆ
From the root of the project directory, build the Docker image:
docker build -t fishy-business .
Running the DashboardΒΆ
The default behavior of the container is to launch the Streamlit dashboard on port 8501.
Basic RunΒΆ
docker run -p 8501:8501 fishy-business
With Persistent DataΒΆ
To ensure your training results and datasets persist outside the container, mount your local data and outputs directories:
docker run -p 8501:8501
-v $(pwd)/data:/app/data
-v $(pwd)/outputs:/app/outputs
fishy-business
Using the CLI via DockerΒΆ
You can use the container to run training experiments or manage data without installing Python locally.
Download DataΒΆ
docker run -it -v $(pwd)/data:/app/data fishy-business
fishy download-data --token <YOUR_GITHUB_TOKEN>
Run a Training ExperimentΒΆ
docker run -it
-v $(pwd)/data:/app/data
-v $(pwd)/outputs:/app/outputs
fishy-business
fishy train -m transformer -d species --epochs 50
Weights & Biases IntegrationΒΆ
To log results to W&B from within Docker, pass your API key as an environment variable:
docker run -p 8501:8501
-e WANDB_API_KEY=<your_key>
-v $(pwd)/outputs:/app/outputs
fishy-business
SummaryΒΆ
Using Docker is highly recommended for:
* Server Deployment: Hosting the dashboard on a remote research server.
* Reproducibility: Ensuring your thesis results arenβt affected by local library updates.
* Quick Setup: Skipping the installation of complex dependencies like XGBoost.