1*da0073e9SAndroid Build Coastguard Worker# Docker images for GitHub CI and CD 2*da0073e9SAndroid Build Coastguard Worker 3*da0073e9SAndroid Build Coastguard WorkerThis directory contains everything needed to build the Docker images 4*da0073e9SAndroid Build Coastguard Workerthat are used in our CI. 5*da0073e9SAndroid Build Coastguard Worker 6*da0073e9SAndroid Build Coastguard WorkerThe Dockerfiles located in subdirectories are parameterized to 7*da0073e9SAndroid Build Coastguard Workerconditionally run build stages depending on build arguments passed to 8*da0073e9SAndroid Build Coastguard Worker`docker build`. This lets us use only a few Dockerfiles for many 9*da0073e9SAndroid Build Coastguard Workerimages. The different configurations are identified by a freeform 10*da0073e9SAndroid Build Coastguard Workerstring that we call a _build environment_. This string is persisted in 11*da0073e9SAndroid Build Coastguard Workereach image as the `BUILD_ENVIRONMENT` environment variable. 12*da0073e9SAndroid Build Coastguard Worker 13*da0073e9SAndroid Build Coastguard WorkerSee `build.sh` for valid build environments (it's the giant switch). 14*da0073e9SAndroid Build Coastguard Worker 15*da0073e9SAndroid Build Coastguard Worker## Docker CI builds 16*da0073e9SAndroid Build Coastguard Worker 17*da0073e9SAndroid Build Coastguard Worker* `build.sh` -- dispatch script to launch all builds 18*da0073e9SAndroid Build Coastguard Worker* `common` -- scripts used to execute individual Docker build stages 19*da0073e9SAndroid Build Coastguard Worker* `ubuntu` -- Dockerfile for Ubuntu image for CPU build and test jobs 20*da0073e9SAndroid Build Coastguard Worker* `ubuntu-cuda` -- Dockerfile for Ubuntu image with CUDA support for nvidia-docker 21*da0073e9SAndroid Build Coastguard Worker* `ubuntu-rocm` -- Dockerfile for Ubuntu image with ROCm support 22*da0073e9SAndroid Build Coastguard Worker* `ubuntu-xpu` -- Dockerfile for Ubuntu image with XPU support 23*da0073e9SAndroid Build Coastguard Worker 24*da0073e9SAndroid Build Coastguard Worker### Docker CD builds 25*da0073e9SAndroid Build Coastguard Worker 26*da0073e9SAndroid Build Coastguard Worker* `conda` - Dockerfile and build.sh to build Docker images used in nightly conda builds 27*da0073e9SAndroid Build Coastguard Worker* `manywheel` - Dockerfile and build.sh to build Docker images used in nightly manywheel builds 28*da0073e9SAndroid Build Coastguard Worker* `libtorch` - Dockerfile and build.sh to build Docker images used in nightly libtorch builds 29*da0073e9SAndroid Build Coastguard Worker 30*da0073e9SAndroid Build Coastguard Worker## Usage 31*da0073e9SAndroid Build Coastguard Worker 32*da0073e9SAndroid Build Coastguard Worker```bash 33*da0073e9SAndroid Build Coastguard Worker# Build a specific image 34*da0073e9SAndroid Build Coastguard Worker./build.sh pytorch-linux-bionic-py3.8-gcc9 -t myimage:latest 35*da0073e9SAndroid Build Coastguard Worker 36*da0073e9SAndroid Build Coastguard Worker# Set flags (see build.sh) and build image 37*da0073e9SAndroid Build Coastguard Workersudo bash -c 'PROTOBUF=1 ./build.sh pytorch-linux-bionic-py3.8-gcc9 -t myimage:latest 38*da0073e9SAndroid Build Coastguard Worker``` 39