Skip to content
eine edited this page Jan 15, 2020 · 1 revision

Is there any publicly available docker image which includes VUnit and a simulator?

Project GHDL distributes a set of six images that include latest GHDL along with VUnit. See ghdl/docker.


Where are dev images built and hosted?

Images are currently built in a GitHub Actions workflow (see images.yml, images.sh, actions) and hosted in a GitHub Package Registry. GitHub requires authenticated login to docker.pkg.github.com in order to pull them.


Can I contribute a Dockerfile to test VENDOR_TOOL in the main repo?

Although it is technically possible, and desirable, we areno entitled to do so, as we are not allowed to distribute VENDOR_TOOL. Publishing a docker image to a public registry is, in practice, distributing it. As a partial solution, we might:

  • Publish a docker image which does not include VENDOR_TOOL, but just the dependecies. Download and install VENDOR_TOOL in each CI job/run.
  • Publish a ready-to-use docker image to a private registry (which we don't have ATM) and use encrypted credentials in the CI jobs/runs.

Unfortunately, none of them is desirable in an open source project. If any vendor wants to support VUnit, an effort to facilitate CI in the main repo should be done. Meanwhile, it might be possible to run the tests in edaplayground.

Nevertheless, it would be a very useful contribution to explain how to do install and set up VENDOR_TOOL. This might include the stub of a dockerfile along with notes/hints about how to configure options for the unattended installation, how to add a license file or the envvars to connect to a license server, (optionally) how to install the license server in a sibling container, etc. Some useful references for ModelSim/QuestaSim/Precision:

The most usual approach is to install ModelSim in a Debian/Ubuntu/Fedora container, then add Python and last VUnit. However, it is also possible not to install Python/VUnit in the same image, but have them installed on the host or in a sibling image/container instead: