iemejia opened a new pull request, #3826: URL: https://github.com/apache/avro/pull/3826
## Summary Modernize the Docker build image (`share/docker/Dockerfile`) to leverage BuildKit features, reduce image size, and improve rebuild speed. ## Changes ### BuildKit cache mounts - Add `# syntax=docker/dockerfile:1` directive for portability - Use `--mount=type=cache` for apt, npm, cpanm, and bundler caches — eliminates repeated `apt-get update`/`apt-get clean` cycles, produces smaller layers, and speeds up rebuilds - Use `--mount=type=bind` for Ruby gem resolution (replaces `COPY` layers) ### Package trimming - Replace `libboost-all-dev` (~70+ sub-packages) with only the four Boost packages needed by the C++ test suite: `libboost-dev`, `libboost-test-dev`, `libboost-random-dev`, `libboost-math-dev` - Remove redundant packages already provided by `build-essential` (`g++`, `gcc`, `make`) or by other -dev packages (`libsnappy1v5`) - Remove `apt-transport-https` (unnecessary on Ubuntu 24.04) - Add `--no-install-recommends` to all `apt-get install` calls - Add `php-zip` and `unzip` (previously pulled as recommends, needed by Composer) - Remove Rust toolchain (no longer needed) ### Housekeeping - Convert build-only variables (`MAVEN_VERSION`, `APACHE_DIST_URLS`, `PHP8_VERSION`) from `ENV` to `ARG` - Remove dead `PIP_NO_CACHE_DIR=off` (misleading and moot with `uv`) - Fix .NET SDK install to use `&&` instead of `;` (fail-fast on errors) - Fix PHP extension build to use `/tmp/lang/php` (consistent naming, proper cleanup) - Move Ruby `bundle install` after .NET/Java layers for better cache efficiency - Move `libbz2-dev`, `libzstd-dev`, `libyaml-dev` to main packages section ### Python packaging fix (`lang/py/pyproject.toml`) - Fix `license-files` path to point to `avro/LICENSE` (actual location) - Add `[tool.setuptools.packages.find]` with `include = ["avro*"]` to ensure correct package discovery - Bump mypy upper bound to `<2.2.0` in `uv.lock` ## Requirements Requires Docker BuildKit (default builder since Docker 23.0). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
