docker/README.md
The Vitess Project publishes several Docker images in the Docker Hub "vitess" repository. This file describes the purpose of the different images.
TL;DR: Use the vitess/lite image for running Vitess. Our Kubernetes
Tutorial uses it as well. Instead of using the latest tag, you can pin it to a known stable version e.g. v4.0.
The structure of this directory and our Dockerfile files is guided by the following principles:
docker/<image>/.build.sh script e.g.
see bootstrap/build.sh.v2.0 for the
image vitess/lite.latest tag to reference the latest build of an image.Our list of images can be grouped into:
| Image | How (When) Updated | Description |
|---|---|---|
| bootstrap | manual (after incompatible changes are made to bootstrap.sh or vendor/vendor.json | Basis for all Vitess images. It is a snapshot of the checked out repository after running ./bootstrap.sh. Used to cache dependencies. Avoids lengthy recompilation of dependencies if they did not change. Our internal test runner test.go uses it to test the code against different MySQL versions. |
| base | manual (on demand) | Contains all Vitess server binaries. Snapshot after running make build. |
| lite | automatic (after every push to main branch) | Stripped down version of base |
All these Vitess images include a specific MySQL/MariaDB version ("flavor").
Dockerfile.<flavor>).If you are looking for a stable version of Vitess, use the lite image with a fixed version. If you are looking for the latest Vitess code in binary form, use the "latest" tag of the lite image. If you need to use a binary that is not included in lite use the base image.