Estimated reading time: 3 minutes

SWI-Prolog offers a comprehensive free Prolog environment.

GitHub repo: https://github.com/SWI-Prolog/docker-swipl

Library reference

This content is imported from the official Docker Library docs, and is provided by the original uploader. You can view the Docker Hub page for this image at https://hub.docker.com/images/swipl

Supported tags and respective Dockerfile links

Quick reference

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

Excluded packages

  • 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

Included addins

This image includes several SWI-Prolog addins that are commonly used, complex to build, and require little additional space.

  • space
  • prosqlite
  • rocksdb*
  • hdt*
  • rserve_client

*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 repo-info repository’s swipl/ directory.

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