Docker Extensions

Docker extensions allow you to extend KBC in a more flexible way than Custom Science. At the same time, 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.

Advantages:

  • Customizable UI (input/output mapping)
  • Standard (customizable), or your own UI can be used
  • Branding possible; Documentation and extended description can be provided
  • Arbitrary application environment; can be fully private
  • Automatically offered to all KBC users
  • Support for OAuth2

Disadvantages:

See the overview for comparison with other customization options.

How to Create a Docker Extension

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 very 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 ENTRYPOINT. We also recommend that you base your image on one of our images.

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. We make sure 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.