--- /dev/null
+# Based on https://hub.docker.com/_/rust?tab=description and https://hub.docker.com/_/rust?tab=description\r
+\r
+# The first container is for build purposes only.\r
+FROM rust as builder\r
+\r
+WORKDIR /usr/src/scryer-prolog\r
+\r
+# Using a dummy build.rs and src/main.rs with your Cargo.toml lets Docker cache your Rust dependencies and not rebuild\r
+# them every time.\r
+COPY Cargo.toml .\r
+COPY Cargo.lock .\r
+RUN mkdir -p src\r
+RUN echo "fn main() {}" > src/main.rs\r
+RUN echo "fn main() {}" > build.rs\r
+RUN cargo build --release\r
+\r
+# We need to touch our real main.rs and build.rs files or else\r
+# docker will use the cached ones.\r
+COPY . .\r
+RUN touch src/main.rs\r
+RUN touch build.rs\r
+\r
+RUN cargo build --release\r
+\r
+RUN ls ./target/release\r
+\r
+# Finally, copy the scryer-prolog executable to a slimmer container.\r
+FROM debian:buster-slim\r
+COPY --from=builder /usr/src/scryer-prolog/target/release/scryer-prolog /usr/local/bin/scryer-prolog\r
+CMD ["scryer-prolog"]\r
## Installing Scryer Prolog
+### Native Install (Unix Only)
+
First, install the latest stable version of
[Rust](https://www.rust-lang.org/en-US/install.html) using your
preferred method. Scryer tends to use features from newer Rust
The optional `--release` flag will perform various optimizations,
producing a faster executable.
+### Docker Install (All Platforms)
+
+To automatically download, install, and run Scryer Prolog via Docker,
+simply run:
+```
+$> docker run -it mthom/scryer-prolog
+```
+
+To be able to load your program files, bind mount your programs folder
+as a Docker volume:
+
+```
+$> docker run -v /home/user/prolog:/mnt -it mthom/scryer-prolog
+?- consult('mnt/program.pl').
+true.
+```
+
+[Docker](https://hub.docker.com/editions/community/docker-ce-desktop-windows)
+is currently the only way to run scryer-prolog on Windows.
+
## Tutorial
Prolog files are loaded by specifying them as arguments on the command