How to update the build image

The build image currently can only be updated by a Cortex maintainer. If you’re not a maintainer you can still open a PR with the changes, asking a maintainer to assist you publishing the updated image. The procedure is:

  1. Update build-image/Dockerfile
  2. Run go env and make sure GOPROXY=https://proxy.golang.org,direct (Go’s default). Some environment may required GOPROXY=direct, and if you push a build image with this, build workflow on GitHub will take a lot longer to download modules.
  3. docker login quay.io. Note that pushing to quay.io/cortexproject/build-image repository can only be done by a maintainer.
  4. Build the and publish the image by using make push-multiarch-build-image. This will build and push multi-platform docker image (for linux/amd64 and linux/arm64). Running this step successfully requires Docker Buildx, but does not require a specific platform.
  5. Replace the image tag in .github/workflows/* (there may be multiple references) and Makefile (variable LATEST_BUILD_IMAGE_TAG).
  6. If you are updating Go’s runtime version be sure to change actions/setup-go’s go-version in ``.github/workflows/*`.
  7. Open a PR and make sure the CI with new build-image passes