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.