Install Skosmos with Fuseki in Docker - NatLibFi/Skosmos GitHub Wiki
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:
- Running a single container with just Skosmos itself (you will have to run a separate instance of Fuseki outside the container)
- 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
- Check the logs when running
docker-compose
ordocker build
. Anything like error messages, or containers exiting instead of running may indicate the problem. - If you are using
docker-compose
, it is a good idea to rundocker-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.) - Check
docker stats
to see if your CPU or memory are limiting the images, also checktop
and/orhtop
in case of performance issues. - 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
anddocker-compose up --force-recreate