Docker extensions allow you to extend KBC in a more flexible way than Custom Science. At the same time, a significant implementation effort on your part is required. In Docker extensions, the data interface is very similar to Transformations and Custom Science — data is exchanged as CSV files in designated directories.
See the overview for comparison with other customization options.
If you are new to extending KBC with your own code, you might want to start by creating a simple Custom Science extension first. Any Custom Science extension can be easily converted to a Docker extension.
As a developer, implement the application logic in an arbitrary language, and store it in a git repository.
The extension must adhere to our Common Interface.
We provide libraries to help you with implementation in
R and Python.
We also have an example application in PHP. When you have your
application ready, wrap it in a Docker image. All images which are supposed to be run in KBC
must have an
All applications process input tables stored in CSV files and generate result tables in CSV files. Extractors work the same way. However, instead of reading their input from KBC tables, they get it from an external source (usually an API). Similarly, writers do not generate any KBC tables. Our Docker Runner component makes sure that the CSV files are created in and taken from the right places. The execution of your extension happens in its own isolated environment. Before you (or anyone else) can use your Docker extension, it must be registered.
If you are new to Docker, there is a quick introduction available, along with a guide to setting up Docker and a guide to building dockerized applications. To create a simple Docker extension on your own, go to our Quick Start guide. You can also test and debug existing images in the KBC environment.