scip-jupyterlab
Official SCIP docker image build from https://github.com/scipopt (see overview for details)
1.2K
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.
| Component | Version |
|---|---|
| SCIP | 10.0.0 |
| PySCIPOpt | 6.0.0 |
| Python | 3.11 |
| OS | Debian Slim |
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.
docker run -p 8000:8000 -e API_SECRET_KEY=<random_string_of_atleast_32_characters> scipoptsuite/scip-webservice
Access the interfaces:
You can configure the service using environment variables (-e) and Docker resource flags.
| Variable / Flag | Default | Description |
|---|---|---|
MAX_CONCURRENT_JOBS | 2 | (Env Var) Maximum number of parallel solver processes. Set this based on your available CPU cores. |
JOB_RETENTION_HOURS | 24 | (Env Var) How long to keep job results and logs before deleting them. |
MAX_UPLOAD_SIZE_MB | 1024 | (Env Var) Max allowed file size in MB. |
--cpus | N/A | (Docker Flag) Limit the container's CPU usage. Recommended: MAX_CONCURRENT_JOBS * 1.0. |
--memory | N/A | (Docker Flag) Limit the container's memory. Recommended: 2GB per concurrent job. |
| Variable | Default | Description |
|---|---|---|
DATABASE_URL | sqlite+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"
| Volume Path | Description |
|---|---|
/app/logs | Mount this to access server logs and solver output on the host. |
/app/problems | Mount this to access uploaded and solved problem files. |
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
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.
docker run -p 8888:8888 -v $(pwd):/app scipoptsuite/scip-jupyterlab
Access Jupyter Lab at http://localhost:8888.
| Parameter | Type | Default | Description |
|---|---|---|---|
8888 | Port | 8888 | The internal port for Jupyter Lab. |
JUPYTER_TOKEN | Env Var | (Random) | Set a custom password/token for access. If not set, a random token is printed to the console on startup. |
/app | Volume | N/A | Highly Recommended: Mount your local working directory here to save your notebooks and work. |
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
pyscipopt (SCIP Interface)jupyterlabnumpypandasmatplotlibscikit-learnipykernelContent type
Image
Digest
sha256:37e0c85aa…
Size
710.2 MB
Last updated
5 months ago
docker pull scipoptsuite/scip-jupyterlab:v10.0