Skip to content

Install Skosmos with Fuseki in Docker

joelit edited this page Jan 23, 2024 · 16 revisions

It is possible to run Skosmos within a Docker container. We provide the Dockerfiles necessary to build an image and instructions for how to run it within a container. If you are familiar with Docker tools, this is an easy way of testing Skosmos without having to install a lot of dependencies. There are two alternate setups:

  1. Running a single container with just Skosmos itself (you will have to run a separate instance of Fuseki outside the container)
  2. Running three containers containing Skosmos, Fuseki and the Varnish HTTP cache, using docker-compose to bind them together

In both cases the configuration mirrors the setup used in the InstallTutorial: there are two example vocabularies (STW Thesaurus and UNESCO Thesaurus) that you can browse. This is not intended for production use, but rather as a starting point for experimentation and further configuration.

See the README.md and other files in the ./dockerfiles/ directory of Skosmos for more about using Skosmos with Fuseki in Docker.

This page had more information about Skosmos under Docker before, but that information is mostly outdated because of improvements made in Skosmos 2.10. If you like you can still consult the previous version for reference.

Troubleshooting

  1. Check the logs when running docker-compose or docker build. Anything like error messages, or containers exiting instead of running may indicate the problem.
  2. If you are using docker-compose, it is a good idea to run docker-compose ps after starting your services to confirm everything is running as expected. For instance, at the time of writing, the Skosmos installation in Docker Compose is expected to create three services (Skosmos, Jena Fuseki, and Varnish cache.)
  3. Check docker stats to see if your CPU or memory are limiting the images, also check top and/or htop in case of performance issues.
  4. If you are re-trying something on your Docker Compose installation (e.g. development), after changing the configuration it might be a good idea to stop and remove volumes, then force recreation and load the data, to start with a clean environment. This can be done with the following commands: docker-compose down -v and docker-compose up --force-recreate