We are building the HESCOR Database to make it easier for researchers from different disciplines to share data. We want modellers to know what data exists, ensure that existing data can be reused, and structure new data in a way that makes it understandable to modellers without requiring deep domain expertise. However, setting up the database itself is not easy.
Building the HESCOR Database involves bringing together several key components, each serving a different function. There’s one part that handles storing the data, another that runs the website where you can interact with the data, and a service that lets you search through the data. Each of these components has its own needs, such as specific software, libraries, or settings to work correctly. As you add more components, making sure all of these needs are met at the same time becomes increasingly difficult, and sometimes they can even clash with one another.
This is where Docker containers come in handy. To put it simply, Docker containers are like small, self-contained boxes that hold everything a piece of software needs to run—its code, tools, libraries, and settings. These containers can run on any computer, regardless of what’s installed on it, ensuring that software works the same way everywhere. By isolating each component of the HESCOR Database in its own container, we prevent conflicts between components and make the overall system easier to manage.
Using containers not only simplifies the initial setup but also makes ongoing maintenance much easier. For example, if we need to update or add a new feature, we can first test the changes in a separate environment. Once we’re confident the new container works well, it can be plugged into the production server without disrupting the rest of the system. This flexibility allows us to roll out improvements smoothly, reducing downtime and errors. In the long run, both maintainers and users benefit from a more adaptable and reliable system.
Diagram showing a virtual machine running a Docker environment. Inside Docker are four isolated containers: NGINX proxy, CKAN application, PostgreSQL (metadata), and SOLR search—representing the HESCOR database components running separately.