Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update the base image for ci-build's Dockerfile (#2674)
## Motivation and Context ~~**The PR will be a draft until #2675 is merged into `main`. Once that's merged, this PR can remove the change to `Cargo.toml` in `aws-smithy-client`.**~~ **Now that it's passed tests in CI, ysaito1001 will merge this PR once it has passed the internal tests** Fixes #2500. ## Description This PR updates the base image for ci-build's Dockerfile as the latest image for [amazonlinux](https://gallery.ecr.aws/amazonlinux/amazonlinux) has been updated to 2023. As part of it, the changes to Dockerfile include - Fixing conflicting curl's libraries by specifying `--allowerasing` Without it, we'd get an error as follows: ``` package curl-minimal-7.88.1-1.amzn2023.0.1.x86_64 conflicts with curl provided by curl-7.87.0-2.amzn2023.0.2.x86_64 ``` - Adding perl explicitly as a new version of openssl now requires it Without `perl`, we'd get an error as follows: ``` Step 24/48 : RUN cargo +${rust_nightly_version} -Z sparse-registry install cargo-deny --locked --version ${cargo_deny_version} ---> Running in 3c3431881cfa ... error: failed to run custom build command for `openssl-sys v0.9.76` ... --- stderr Can't locate FindBin.pm in @inc (you may need to install the FindBin module) (@inc contains: /usr/local/lib64/perl5/5.32 /usr/local/share/perl5/5.32 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./Configure line 15. BEGIN failed--compilation aborted at ./Configure line 15. thread 'main' panicked at ' ``` Also, there is a change to `Cargo.toml` in `aws-smithy-client`: - Forcing `aws-smithy-client` with `native-tls` feature to use a more recent `openssl-sys` crate Without it, `cargo minimal-versions check` would fail in `aws-smithy-client` trying to build `openssl-sys` v0.9.39 where OpenSSL in a container is more up-to-date, leading to a build failure (See [this issue](sfackler/rust-openssl#1724) for more details) Finally, updating CI for `Run Tests on Windows` - Manually installing `openssl` as [suggested](sfackler/rust-openssl#1542 (comment)). Without it, after introducing a more recent `openssl` 0.10.52 `dev-dependencies` in `aws-smithy-client`, we'd get this on Windows: ``` --- stderr thread 'main' panicked at ' Could not find directory of OpenSSL installation, and this `-sys` crate cannot proceed without this knowledge. If OpenSSL is installed and this crate had trouble finding it, you can set the `OPENSSL_DIR` environment variable for the compilation process. Make sure you also have the development packages of openssl installed. For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora. If you're in a situation where you think the directory *should* be found automatically, please open a bug at https://github.com/sfackler/rust-openssl and include information about your system as well as this message. $HOST = x86_64-pc-windows-msvc $TARGET = x86_64-pc-windows-msvc openssl-sys = 0.9.90 ``` ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._ --------- Co-authored-by: Yuki Saito <[email protected]> Co-authored-by: Zelda Hessler <[email protected]>
- Loading branch information