solana/ci/docker-rust-nightly
Brooks Prumo 12df0f234d
Upgrade to Rust 1.64.0 (#28034)
2022-09-29 09:32:24 -04:00
..
Dockerfile Upgrade to Rust 1.64.0 (#28034) 2022-09-29 09:32:24 -04:00
README.md Bump rust nightly to 2020-08-17 2020-08-17 22:36:10 -07:00
build.sh Build rust docker images for linux/amd64 2022-04-11 18:15:03 -04:00

README.md

Docker image containing rust nightly and some preinstalled crates used in CI.

This image may be manually updated by running CI=true ./build.sh if you are a member of the Solana Labs Docker Hub organization.

Moving to a newer nightly

NOTE: Follow instructions in docker-rust/README.md before this when updating the stable rust version as well.

We pin the version of nightly (see the ARG nightly=xyz line in Dockerfile) to avoid the build breaking at unexpected times, as occasionally nightly will introduce breaking changes.

To update the pinned version:

  1. Edit Dockerfile to match the desired stable rust version to base on if needed.
  2. Run ci/docker-rust-nightly/build.sh to rebuild the nightly image locally, or potentially ci/docker-rust-nightly/build.sh YYYY-MM-DD if there's a specific YYYY-MM-DD that is desired (default is today's build). Check https://rust-lang.github.io/rustup-components-history/ for build status
  3. Update ci/rust-version.sh to reflect the new nightly YYYY-MM-DD
  4. Run SOLANA_ALLOCATE_TTY=1 SOLANA_DOCKER_RUN_NOSETUID=1 ci/docker-run.sh --nopull solanalabs/rust-nightly:YYYY-MM-DD ci/test-checks.sh and SOLANA_ALLOCATE_TTY=1 SOLANA_DOCKER_RUN_NOSETUID=1 ci/docker-run.sh --nopull solanalabs/rust-nightly:YYYY-MM-DD ci/test-coverage.sh [args]... to confirm the new nightly image builds. Fix any issues as needed
  5. Run docker login to enable pushing images to Docker Hub, if you're authorized.
  6. Run CI=true ci/docker-rust-nightly/build.sh YYYY-MM-DD to push the new nightly image to dockerhub.com.
  7. Send a PR with the ci/rust-version.sh change and any codebase adjustments needed.

Troubleshooting

Resource is denied

When running CI=true ci/docker-rust-nightly/build.sh, you see:

denied: requested access to the resource is denied

Run docker login to enable pushing images to Docker Hub. Contact @mvines or @garious to get write access.