Docker Runner is a core KBC component which provides an interface for running other KBC components. Every component in Keboola Connection is represented by a Docker image in Keboola Connection. Running a component means creating and executing an asynchronous job.
Developing functionality in Docker allows you to focus only on the application logic; all communication with Storage API will be handled by Docker Runner. You can encapsulate any application into an Docker image following a set of rules that will allow you to integrate the application into Keboola Connection.
There is a predefined interface with Docker Runner consisting mainly of a folder structure and a serialized configuration file. Custom Science, Docker Extensions and also R and Python Transformations are all dockerized applications and are run using Docker Runner.
The Docker Runner functionality can be described in a few steps:
When the application execution is finished, Docker Runner automatically collects the exit code and the content of STDOUT and STDERR. The following schema illustrates the workflow of running a dockerized component.
The application is responsible for these processes:
Docker Runner is responsible for the following processes:
For Custom Science, Docker Runner also creates the Docker image from the specified git repository on the fly.
The Docker Runner API is described on Apiary.io. Docker Runner has API calls to
Extensions executed by Docker Runner store their configurations in Storage API Components Configurations.
When creating the configuration, use this JSON schema to validate the configuration before storing it. The configuration contains the following nodes:
parameters— An arbitrary object passed to the dockerzied application itself.
storage— Configuration of input and output mapping. Specific options correspond to the options of the Unload table and Load table API calls.
runtime— Configuration for running Custom Science extensions.
processors— Configuration of Processors
authorization— OAuth authorization injected to the configuration. Not stored in Component Configuration.
image_parameters— An arbitrary object passed from the registered component. Not stored in Component Configuration.
action— An Action being executed. Not stored in Component Configuration.