swiplEstimated reading time: 3 minutes
SWI-Prolog offers a comprehensive free Prolog environment.
GitHub repo: https://github.com/SWI-Prolog/docker-swipl
Supported tags and respective
Where to file issues:
the SWI-Prolog community
What is SWI-Prolog?
SWI-Prolog is a versatile implementation of the Prolog language. Its robust multi-threading, extended data types, unbounded arithmetic and Unicode representation of text allow for natural representation of documents (e.g., XML, JSON, RDF) and exchange of data with other programming paradigms.
How to use this image
Start a REPL
This image can be run directly to obtain an SWI-Prolog environment with most useful modules pre-built. When started without parameters, the SWI-Prolog REPL is launched automatically:
docker run -it swipl
Build an image with your application
It is also useful to build images on top of this base image which rely on SWI-Prolog and provide their own default command:
FROM swipl COPY . /app CMD ["swipl", "/app/start.pl"]
This will extract and copy your source files to the image and then set the default command to run your application.
Differences from the SWI-Prolog source distribution
- jpl - interop with Java is excluded, as Java isn’t included on the image
- xpce - XPCE is excluded, as it’s used only for the GUI platform
This image includes several SWI-Prolog addins that are commonly used, complex to build, and require little additional space.
*excluded from ARM architecture images due to platform constraints
View the Simplified BSD license for the software contained in this image.
As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
Some additional license information which was able to be auto-detected might be found in the
As for any pre-built image usage, it is the image user’s responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.library, sample, swipl