Did you know ... | Search Documentation: |
SWI-Prolog Docker images |
"Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud." More technically, Docker allows for creating a Docker image that depends on the CPU (typically AMD64) and the Linux kernel ABI. This image is self-contained and can run unmodified on a wide variety of platforms, either natively (Linux), using emulation (Windows Subsystem for Linux) or using a virtual machine (Windows, MacOS). The Docker image is built from a recipe called the Dockerfile. As this recipe is executed in the controlled Docker environment its execution doesn't suffer from issues caused by an incompatible OS, OS version or conflicting other applications.
So far the good news. There are of course a few catches. One is that Docker images are relatively large as they include, beside the application, all the OS pieces necessary to support the applications such as its libraries, supporting executables, etc. The image runs inside a container, which is good for security but complicates running it as a normal executable on the desktop.
For short, Docker is particularly suitable for deploying services. That is good for us as SWI-Prolog provides strong support for deployment as a (network) service. Docker images come in three flavours:
docker build -t name .