A starter kit to dockerize a Business Intelligence Project

Customize atoti Dockerfile for quick deployment

Docker is one of the leading open-source DevOps containerization tools. It enables us to package our applications and the dependencies into containers, making it easy to deploy and run the application. Here, we will see how to dockerize a BI project.


You should have Docker installed on your machine. Refer to the Docker get-started guide if you haven’t.

UPDATE: This article is based on an older version of atoti. Check out the latest atoti documentation for the most updated information.

Steps to dockerize

The diagram below shows how to get an application dockerized. Refer to this Docker blog for more details.


Image from Docker blog


Some high-level definitions:

  • Dockerfile: Set of instructions to build the Docker image. This includes the dependencies installation, folders creations etc.
  • Docker image: Set of processes as outlined in the Dockerfile to create the container.
  • Docker containers: An instance of the Docker image with the application ready for use.

Instead of going through the full details of how to dockerize, we speed up the process of dockerizing an atoti Business Intelligence project with the ready-to-use atoti Docker image.

atoti Docker image

atoti distributes an official image on Docker Hub. The image comes with the atoti library and its JupyterLab extension ready to use.

You may use the Dockerfile as a base image to add new layers necessary for your application.

In this article, we will define a password instead of the token authentication that is defaulted in JupyterLab. We will modify the Dockerfile as highlighted below:



Note: You could also disable authentication altogether by setting the token and password to empty strings. This is however not recommended in its documentation.

You can rebuild the image with the command:

docker build -t atoti .

Running the Docker image

Before you run the command to run the Docker image, remember to create a volume to persist the data such as your notebooks and files:

docker volume create atoti-volume

Run the image using the create volume with the following command:

docker run — publish 8888:8888 — volume atoti-volume:/home/jovyan/work atoti/atoti

Access the BI dashboards

We can now run our atoti notebooks, build and access the dashboards that are saved previously.



Check out the atoti documentation to find out more about what you can do with it.


Latest posts

Understanding Logs in Atoti
From the default log to how to configure additional logging Application logs are extremely important in any system! Most commonly, they are used to troubleshoot any issue that users may encounter while using an application. For instance, developers use them for debugging and the production support crew uses them to investigate outages. Not just that, in production, they are used to monitor an application’s performance and health. For instance, monitoring tools can pick up certain keywords to identify events such as “server down” or “system out of memory”. It can also serve as an audit trail to track user activity...
Atoti: Working with dates in Python
What is the most problematic data type you have ever dealt with when working with data? I would say dates! Depending on the locale, dates come in different formats such as YYYY-mm-dd, d/m/YYYY, d-mmm-yy etc. Not to mention, sometimes it comes with timestamps and time zones! We can let programs infer the date format or explicitly cast the data to date with a specific format e.g. in Python with Pandas DataFrame: What if we open the CSV file in Microsoft Excel, update it, and try to read it again? The above code snippet will throw out exceptions such as this:...
Understanding conditional statements in Atoti
When do we use filter, where and switch statements? We know that we can perform aggregations and multi-dimensional analysis with Atoti. Aggregation is not always as simple as 1 + 2. Sometimes we end up in an “if…else” situation, and that is where conditional statements come in. Let’s explore some examples with the XVA use case from the Atoti CE Notebook Gallery. Some definitions before moving on: Measures – we refer to metrics or quantifiable data that measure certain aspects of our goals. In the code snippets below, they are represented by measure[<name of metrics>]. Members of a level –...

Join our Community

    Like this post ? Please share

    Follow Us

    atoti Free Community Edition is developed and brought to you by ActiveViam. Learn more about ActiveViam at activeviam.com.