From 3cc64a2eeea5f58ae4807bb1e681daf04e80bdf6 Mon Sep 17 00:00:00 2001 From: ic-builder Date: Mon, 7 Sep 2026 09:22:54 -0500 Subject: [PATCH] knelperf: solver/stats workbench stack (4 containers) KNELPerf-ortools/-julia/-minizinc/-r, pinned images, shared workspace volume. First customer: Ultix scheduler CP-SAT models. Redmine: https://projects.knownelement.com/issues/927 --- knelperf/docker-compose.yml | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 knelperf/docker-compose.yml diff --git a/knelperf/docker-compose.yml b/knelperf/docker-compose.yml new file mode 100644 index 0000000..0399c76 --- /dev/null +++ b/knelperf/docker-compose.yml @@ -0,0 +1,41 @@ +# KNELPerf — performance-organization compute workbench [#927] +# Statistics + constraint-solving for fleet perf analysis (Ultix scheduler +# redesign first customer). Founder-directed naming: KNELPerf- prefix. +# Images are pinned versions (never :latest). Storage in named volumes. +name: knelperf + +services: + ortools: + image: python:3.12.7-slim + container_name: KNELPerf-ortools + command: bash -c "pip install --no-cache-dir --root-user-action=ignore 'ortools==9.11.4210' 'pandas==2.2.3' 'numpy==2.1.3' && sleep infinity" + volumes: + - knelperf-workspace:/workspace + restart: unless-stopped + + julia: + image: julia:1.10.9 + container_name: KNELPerf-julia + command: bash -c "julia -e 'using Pkg; Pkg.add([\"JuMP\",\"HiGHS\",\"DataFrames\",\"StatsBase\",\"CSV\"])' && sleep infinity" + volumes: + - knelperf-workspace:/workspace + restart: unless-stopped + + minizinc: + image: minizinc/minizinc:2.8.7 + container_name: KNELPerf-minizinc + command: bash -c "minizinc --version && sleep infinity" + volumes: + - knelperf-workspace:/workspace + restart: unless-stopped + + rstats: + image: rocker/r-ver:4.4.1 + container_name: KNELPerf-r + command: bash -c "R -q -e 'install.packages(c(\"dplyr\",\"forecast\",\"lubridate\"), repos=\"https://cloud.r-project.org\")' && sleep infinity" + volumes: + - knelperf-workspace:/workspace + restart: unless-stopped + +volumes: + knelperf-workspace: