[
https://issues.apache.org/jira/browse/AVRO-4272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ismaël Mejía reassigned AVRO-4272:
----------------------------------
Assignee: Ismaël Mejía
> Modernize share/docker/Dockerfile with BuildKit and reduce image size
> ---------------------------------------------------------------------
>
> Key: AVRO-4272
> URL: https://issues.apache.org/jira/browse/AVRO-4272
> Project: Apache Avro
> Issue Type: Improvement
> Components: build
> Reporter: Ismaël Mejía
> Assignee: Ismaël Mejía
> Priority: Minor
>
> The shared Docker build image (share/docker/Dockerfile) has accumulated
> technical debt over time. This patch modernizes it for current Docker best
> practices and reduces image size.
> Changes:
> * Replace {{libboost-all-dev}} (~70+ sub-packages) with the four Boost
> packages actually needed by the C++ test suite: {{libboost-dev}},
> {{libboost-test-dev}}, {{libboost-random-dev}}, {{libboost-math-dev}}
> * Use BuildKit cache mounts ({{--mount=type=cache}}) for apt, npm, cpanm, and
> bundler — eliminates repeated {{apt-get update}}/{{clean}} cycles, produces
> smaller layers, and speeds up rebuilds
> * Use BuildKit bind mounts for Ruby gem resolution (replaces COPY layers)
> * Add {{# syntax=docker/dockerfile:1}} directive for portability
> * Remove redundant packages 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
> * Fix .NET SDK install to use {{&&}} instead of {{;}} (fail-fast on errors)
> * 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)
> * Move Ruby bundle install after .NET/Java layers for better cache efficiency
> * Fix PHP extension build to use {{/tmp/lang/php}} (consistent naming, proper
> cleanup)
> Requires Docker BuildKit (default builder since Docker 23.0 / February 2023).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)