scipoptsuite/scip-jupyterlab

By scipoptsuite

Updated 5 months ago

Official SCIP docker image build from https://github.com/scipopt (see overview for details)

Image
Languages & frameworks
Machine learning & AI
Data science
1

1.2K

scipoptsuite/scip-jupyterlab repository overview

SCIP Optimization Suite - Docker Images

This repository provides Docker images for the SCIP Optimization Suite, enabling easy access to the solver via a web API or a Jupyter Lab environment.

Versions

ComponentVersion
SCIP10.0.0
PySCIPOpt6.0.0
Python3.11
OSDebian Slim

1. Web Service Image (scip-webservice)

A FastAPI-based web service that provides endpoints to upload MPS/LP files and solve them using SCIP. It includes a basic dashboard and upload interface.

🚀 Quick Start
docker run -p 8000:8000 -e API_SECRET_KEY=<random_string_of_atleast_32_characters> scipoptsuite/scip-webservice

Access the interfaces:

⚙️ Configuration & Parameters

You can configure the service using environment variables (-e) and Docker resource flags.

Concurrency & Limits
Variable / FlagDefaultDescription
MAX_CONCURRENT_JOBS2(Env Var) Maximum number of parallel solver processes. Set this based on your available CPU cores.
JOB_RETENTION_HOURS24(Env Var) How long to keep job results and logs before deleting them.
MAX_UPLOAD_SIZE_MB1024(Env Var) Max allowed file size in MB.
--cpusN/A(Docker Flag) Limit the container's CPU usage. Recommended: MAX_CONCURRENT_JOBS * 1.0.
--memoryN/A(Docker Flag) Limit the container's memory. Recommended: 2GB per concurrent job.
Database
VariableDefaultDescription
DATABASE_URLsqlite+aiosqlite:///./sql_app.db(Env Var) Connection string for the database. Supports SQLite (default) and PostgreSQL.

PostgreSQL Example (e.g., for Kubernetes):

-e DATABASE_URL="postgresql+asyncpg://user:password@postgres-host:5432/scip_db"
Volumes
Volume PathDescription
/app/logsMount this to access server logs and solver output on the host.
/app/problemsMount this to access uploaded and solved problem files.
📝 Example: Production-Ready Run

Run with 4 concurrent workers, 4 CPU limit, and 8GB memory:

docker run -d \
  -p 8000:8000 \
  -e MAX_CONCURRENT_JOBS=4 \
  -e API_SECRET_KEY=your_secure_random_key \
  --cpus=4.0 \
  --memory=8g \
  -v $(pwd)/logs:/app/logs \
  -v $(pwd)/problems:/app/problems \
  scipoptsuite/scip-webservice

2. Jupyter Lab Image (scip-jupyterlab)

A pre-configured data science environment with SCIP, PySCIPOpt, and standard Python data stacks (Pandas, NumPy, Scikit-Learn, Matplotlib). Ideal for prototyping and interactive solving.

🚀 Quick Start
docker run -p 8888:8888 -v $(pwd):/app scipoptsuite/scip-jupyterlab

Access Jupyter Lab at http://localhost:8888.

⚙️ Configuration & Parameters
ParameterTypeDefaultDescription
8888Port8888The internal port for Jupyter Lab.
JUPYTER_TOKENEnv Var(Random)Set a custom password/token for access. If not set, a random token is printed to the console on startup.
/appVolumeN/AHighly Recommended: Mount your local working directory here to save your notebooks and work.
🔐 Authentication

Option A: Random Token (Default) Run the container. Watch the terminal output for a line like: Jupyter Lab Token: 8f3a1e9c... Use this token to log in.

Option B: Custom Token Pass the JUPYTER_TOKEN environment variable:

docker run -p 8888:8888 \
  -e JUPYTER_TOKEN=mysecretpassword \
  -v $(pwd):/app \
  scipoptsuite/scip-jupyterlab
📦 Included Libraries
  • pyscipopt (SCIP Interface)
  • jupyterlab
  • numpy
  • pandas
  • matplotlib
  • scikit-learn
  • ipykernel

Tag summary

Content type

Image

Digest

sha256:37e0c85aa

Size

710.2 MB

Last updated

5 months ago

docker pull scipoptsuite/scip-jupyterlab:v10.0