gpt4 book ai didi

git - 在Docker Alpine上构建Git时如何减小Git二进制文件的大小?

转载 作者:行者123 更新时间:2023-12-02 18:45:44 25 4
gpt4 key购买 nike

我正在为Git开发一个名为Elegant Git的包装,并希望在多个Git版本上运行测试。由于该项目使用Docker容器进行测试,因此我准备了一个Dockerfile,该Dockerfile从源代码安装了Git并得到了奇怪的结果:

  • 从来源> 200Mb
  • 安装了Git的Apline图像
  • 通过apk add git 28Mb
  • 安装了Git的Apline图像

    它反射(reflect)了每个创建的二进制文件的大小
    Build version: 
    18.6M /git/usr/libexec/git-core/git
    apk version:
    2.4M /usr/libexec/git-core/git

    从源代码构建Git时,有没有办法减小二进制文件的大小?

    以下Dockerfile重现了该行为:
    ARG bashversion=3.2.57
    FROM bash:${bashversion}
    ARG gitversion=2.26.2
    WORKDIR /git

    RUN apk add --no-cache curl && \
    curl --output git-${gitversion}.tar.gz \
    https://mirrors.edge.kernel.org/pub/software/scm/git/git-${gitversion}.tar.gz && \
    tar -xvzf git-${gitversion}.tar.gz && \
    mkdir -p /git

    RUN apk add --no-cache \
    zlib-dev \
    openssl-dev \
    curl-dev \
    expat-dev \
    perl-dev \
    python3-dev \
    pcre2-dev \
    asciidoc \
    xmlto \
    perl-error tcl tk make gcc g++

    RUN cd git-${gitversion} && \
    make prefix=/usr DESTDIR=/git NO_GETTEXT=YesPlease NO_REGEX=YesPlease ICONV_OMITS_BOM=Yes && \
    make prefix=/usr DESTDIR=/git NO_GETTEXT=YesPlease NO_REGEX=YesPlease ICONV_OMITS_BOM=Yes install

    RUN apk add --no-cache git && \
    echo "Build version: " && \
    du -ha /git/usr/libexec/git-core/git | sort && \
    echo "apk version: " && \
    du -ha /usr/libexec/git-core/git | sort

    最佳答案

    我想象apk版本中不存在调试数据。如果您在make strip之前运行make install,则可能会减小可执行文件的大小。

    关于git - 在Docker Alpine上构建Git时如何减小Git二进制文件的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62388943/

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