1_base: builds a base image, based on Ubuntu 16.10 2_buildpy: builds two images: 2a: an image that can build Python 3.6 2b: an image that contains the built Python 3.6 in /opt/python 3_buildwheels: builds an image to build wheel files, puts them in ../4_run 4_run: the production runtime image, which can't build anything and just runs.