Docker container for courses based on the Software Foundations book. The container can be used for easy cross-platform Coq development using Visual Studio Code. The container configuration will automatically install the VsCoq extension for Visual Studio Code and configure Coq-related settings.
The image uses Coq 8.17.1 and includes all dependencies needed to complete the following Software Foundations volumes:
- Logical Foundations (Volume 1)
- Programming Language Foundations (Volume 2)
- Verified Functional Algorithms (Volume 3)
- QuickChick: Property-Based Testing in Coq (Volume 4)
- Separation Logic Foundations (Volume 6)
- Install Docker
- Make sure Docker is running
- Install Visual Studio Code
- Install Remote - Containers extension
- Copy the
.devcontainer
folder to the root of your project folder
After following the above instructions open your project in Visual Studio Code and run the Remote-Containers: Reopen in Container
command.
If the instructions are followed correctly Visual Studio Code should also automatically suggest opening the repository in container mode when the project is loaded.
See here
Make sure that Docker is installed and running.
You need to have the Remote - Containers extension VSCode extension installed and enabled. See here for instructions on how to install it.
Make sure you copied the .devcontainer
folder to your project's root folder and that it includes the devcontainer.json
file.
- Make sure that the Coq files have been compiled. Run
make
to compile the project files. - If the
_CoqProject
files are not located in the project root folder you need to either- Move the files to the root project folder
- Or add the line
"coq.coqProjectRoot": "PATH_TO_COQPROJECT"
(in.devcontainer/devcontainer.json
to point to the directory where_CoqProject
is located. Restarting the docker container is required after this step.
Docker Hub rate limits pulls of images for free accounts to 200 per six hours. If this limit is hit you might get one of the following errors and have to wait until the rate limit resets.
ERROR: toomanyrequests: Too Many Requests
You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits
The Docker image used for the devcontainer is built using the Dockerfile in this repository and hosted on Docker Hub. It is based on the coqorg/coq:8.17.1-ocaml-4.14.1-flambda image, which includes the following:
- Debian 11 Slim
- opam 2.1.3
- OCaml 4.14.1
- Coq 8.17.1
- coq-quickchick 2.0.0
- coq-ext-lib 0.11.8
- coq-equations 1.3+8.17