Frama-C with MetAcsl, Why3 and a selection of SMT solvers in a multi architecture (amd64 and arm64) image.
Available on dockerhub: https://hub.docker.com/r/start974/framac
Source files available on GitHub: https://github.com/start974/docker-framac
This image is directly inspired by the original docker-framac by Frédéric Boulanger (image fredblgr/framac on Docker Hub), updated to Frama-C 33 with Ivette and a desktop available from a web browser through noVNC.
If you plan to use the GUI of Why3 or Frama-C, make sure you have an X server running, and allow connections from the host (xhost +localhost).
Then start the container, mounting the current working directory on /workspace in the container :
docker run --rm --tty --interactive \
--volume "$(PWD):/workspace:rw" \
--name framac33 \
--env="DISPLAY=host.docker.internal:0" \
start974/framac:33.0
Note: on Apple M1 machines, the setting of the X11 display in Docker does not seem to work yet.
It is easier to use the scripts available on GitHub.
In a terminal, run make run or ./run-docker-framac.sh. On Windows, you can use run-docker-framac.ps1 with PowerShell.
After pulling the image from dockerhub, you should be logged as root in the container.
You can then use z3, cvc5, alt-ergo, why3, frama-c and frama-c-gui (Ivette, the new GUI of Frama-C).
The current working directory is mounted as /workspace in the container.
You may also use the frama-c, frama-c-gui and why3 proxy shell scripts to execute these commands in the container as if they were available on the host.
You will need an X server in order to use the GUI of the applications frama-c-guiand why3 ide.
On MacOS, you can use XQuartz, which can also be installed as a cask by brew.
On Windows 10, you can use VcXsrv.
This image, based on ubuntu:24.04, contains:
why3 ide)frama-c-gui
(it replaces the former GTK GUI)Dockerfile the dockerfile to build the imageMakefile has several targets:
build builds the image for the architecture of the hostnewbuilder creates a new builder for buildx and sets buildx to use itbuildx builds the arm64/amd64 image and pushes it to dockerhubrun runs the image in a new containerrun-docker-framac.sh runs the image in a new container. It also takes care of setting up things so that the container can use your X server to display GUI applications.run-docker-framac.ps1 Windows PowerShell version of the previous script.test-framac contains code and two scripts to check if frama-c and frama-c-gui worktest-metacsl contains code and a script to check if MetAcsl workstest-why3 contains code and two scripts to check why3 in command line and in ide/gui modesframa-c, frama-c-gui and why3 are shell scripts that can be used as proxy on the host machine to the corresponding programs in the container.Content type
Image
Digest
sha256:4c103fa3c…
Size
1.7 GB
Last updated
11 days ago
docker pull start974/framac:33.0-amd64