Parse, ground and solve PDDL instances without installing anything but Docker.
The image is python:3.12-slim plus jupyddl
from PyPI — no Julia, no submodules, nothing to build.
docker compose -f docker/docker-compose.yml build
# The repo is mounted at /workspace, so any PDDL file in it is visible.
docker compose -f docker/docker-compose.yml run --rm \
-e DOMAIN=examples/dinner/domain.pddl \
-e PROBLEM=examples/dinner/problem.pddl \
python-pddlPLANNER (default astar) and HEURISTIC (default lmcut) select the
search and heuristic — any name jupyddl solve --help lists. You can also
copy .env.example to .env and set them once.
Anything in the repository directory is mounted at /workspace. Drop your
domain.pddl/problem.pddl anywhere in it and point DOMAIN/PROBLEM at
the relative paths. For a larger collection, see
pddl-examples.
Started without DOMAIN/PROBLEM, the container stays up so you can work
inside it:
docker compose -f docker/docker-compose.yml up -d
docker compose -f docker/docker-compose.yml exec python-pddl bash
jupyddl solve examples/dinner/domain.pddl examples/dinner/problem.pddlApache-2.0. Part of OpenPlan Labs.