-
Notifications
You must be signed in to change notification settings - Fork 223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Speedup the building of Docker images #18038
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few very minor things, but otherwise this LGTM. This included a few tricks I wasn't aware of myself. Thanks for taking the time to go through and do this!
Needs a git revert d113209
before merge, of course.
|
||
ENV UV_LINK_MODE=copy |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you leave a comment explaining why this is useful?
docker/Dockerfile
Outdated
xmlsec1:${arch} \ | ||
libjemalloc2:${arch} \ | ||
libicu72:${arch} \ | ||
openssl:${arch} || exit 10; \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why exit 10
? Is the exit code returned by apt-get download
in case of failure not appropriate?
mkdir -p /install-${arch}/var/lib/dpkg/status.d/ && \ | ||
for deb in /tmp/debs-${arch}/*.deb; do \ | ||
package_name=$(dpkg-deb -I ${deb} | awk '/^ Package: .*$/ {print $2}'); \ | ||
echo "Process: ${package_name}"; \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
echo "Process: ${package_name}"; \ | |
echo "Extracting: ${package_name}"; \ |
This is a split off #18033
This uses a few tricks to speed up the building of docker images:
uv pip install
instead ofpip install
. This saves a bunch of time, especially when cross-compilingapt-get download
plusdpkg --extract