gpt4 book ai didi

linux - 使用 curl 优化 docker 镜像构建大小

转载 作者:行者123 更新时间:2023-12-03 09:49:48 24 4
gpt4 key购买 nike

我需要在 docker 上安装最新版本的 curl
使用以下时, docker 大小为 ~140MB

FROM debian:10.7

RUN apt-get update && \
apt-get install --no-install-recommends -y curl wget ca-certificates
这个使用 curl 7.64
当使用以下
FROM debian:10.7

RUN apt-get update && \
apt-get install --yes --no-install-recommends wget build-essential ca-certificates libcurl4 && \
wget https://curl.se/download/curl-7.73.0.tar.gz && \
tar -xvf curl-7.73.0.tar.gz && cd curl-7.74.0 && \
./configure && make && make install && \
apt-get purge -y --auto-remove build-essential && \
docker 镜像大小为 240MB ,我尝试删除从 440 减小大小的构建要素。至 240 , 有没有办法删除这个额外的 ~100MB ?

最佳答案

事实上,您已经接近解决方案了。你错过的一个是删除 curl 源包。
所以接下来应该使图像缩小:

FROM debian:10.7

RUN apt-get update && \
apt-get install --yes --no-install-recommends wget build-essential ca-certificates libcurl4 && \
wget https://curl.se/download/curl-7.73.0.tar.gz && \
tar -xvf curl-7.73.0.tar.gz && cd curl-7.73.0 && \
./configure && make && make install && \
apt-get purge -y --auto-remove build-essential && \
cd .. && rm -fr curl-7.73.0.tar.gz curl-7.73.0

不 curl :
$ docker images abc:1
REPOSITORY TAG IMAGE ID CREATED SIZE
abc 1 d742bfdf5fa6 25 seconds ago 148MB
使用 curl 和源包删除:
$ docker images abc:2
REPOSITORY TAG IMAGE ID CREATED SIZE
abc 2 afe3d404852a 27 minutes ago 151MB
另外,如果您使用 rm -rf /var/lib/apt/lists/* 删除 apt 缓存在 Dockerfile 中,如果会更小:
$ docker images abc:3
REPOSITORY TAG IMAGE ID CREATED SIZE
abc 3 5530b0e9b44f 2 minutes ago 134MB
另一种解决方案可能使用 multistage-build ,您可以使用 ./configure --prefix=xxx设置默认安装位置,然后 stage1刚用来建 curl , 而 stage2stage1 复制 xxx 文件夹到最终图像。

关于linux - 使用 curl 优化 docker 镜像构建大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65474550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com