Skip to main content

Using the Tator build system

Tator uses GNU Make to provide a convenient interface for building docker images, transpiling the front end, updating Docker services, and other build functions. This tutorial will give you an overview of build targets in Tator's Makefile.

Uninstall Tator

When you run make tator, a Tator deployment is automatically created for you using the Makefile. Let's start by uninstalling Tator. You will not lose any data when you do this; all data is stored by default on the filesystem which remains untouched. If you are using third party services for databases or object storage, they will be unaffected.

make clean

You will see several messages that will end by notifying you that the Docker services have been stopped and removed.

Install Tator

Now we can install Tator again.

make tator

This command just installs the Docker Compose deployment. If you are starting from scratch and want to build your own Docker images you would use:

make images && make tator

Update Tator

While developing, the Makefile provides some convenience targets to push your changes to existing Docker images. So for example, if you were to change a REST endpoint you could update the backend using:

make dev-push

This command copies all source code into running Gunicorn containers. If you make a change to the front end, you can rebuild the webpack bundles and copy them using:

make collect-static

If you make a change to the Docker Compose environment file .env, you can apply this change quickly using:

make cluster-update

Note that if your source tree corresponds to a different commit from what was last used to install or upgrade Tator, you will need to rebuild the Docker images and update the compose deployment. So for example, if you check out the latest tagged release of Tator and want to update your cluster, you would use:

make cluster-upgrade

Other build targets

There are also lower level build targets corresponding to building docker images, monitoring and maintenance, client generation, database management, and development. See the Makefile reference for further info.