github.com/anchore/syft@v1.38.2/syft/pkg/cataloger/binary/test-fixtures/elf-test-fixtures/Dockerfile (about)

     1  FROM rockylinux:8 AS base
     2  
     3  RUN dnf update -y; \
     4  	dnf install make automake gcc gcc-c++ kernel-devel -y; \
     5  	dnf clean all
     6  RUN mkdir -p /usr/local/bin/elftests/elfbinwithnestedlib
     7  RUN mkdir -p /usr/local/bin/elftests/elfbinwithsisterlib
     8  RUN mkdir -p /usr/local/bin/elftests/elfbinwithcorrupt
     9  
    10  COPY ./elfbinwithnestedlib /usr/local/bin/elftests/elfbinwithnestedlib
    11  COPY ./elfbinwithsisterlib /usr/local/bin/elftests/elfbinwithsisterlib
    12  COPY ./elfbinwithcorrupt /usr/local/bin/elftests/elfbinwithcorrupt
    13  
    14  ENV LD_LIBRARY_PATH=/usr/local/bin/elftests/elfbinwithnestedlib/bin/lib
    15  
    16  WORKDIR /usr/local/bin/elftests/elfbinwithnestedlib/
    17  RUN make
    18  
    19  WORKDIR /usr/local/bin/elftests/elfbinwithsisterlib
    20  RUN make
    21  WORKDIR /usr/local/bin/elftests/elfbinwithcorrupt
    22  RUN make
    23  
    24  # let's make the test image smaller, since we only require the built binaries and supporting libraries
    25  FROM busybox:1.36.1-musl
    26  
    27  COPY --from=base /usr/local/bin/elftests /usr/local/bin/elftests
    28  COPY --from=base /var/lib/rpm /var/lib/rpm
    29  COPY --from=base '/usr/lib64/libstdc++.so.6.0.25' '/usr/lib64/libstdc++.so.6.0.25'
    30  COPY --from=base '/usr/lib64/libstdc++.so.6' '/usr/lib64/libstdc++.so.6'
    31  COPY --from=base '/usr/lib64/libc.so.6' '/usr/lib64/libc.so.6'
    32  COPY --from=base '/usr/lib64/libc.so' '/usr/lib64/libc.so'
    33  
    34  # prove we can operate over symlinks (/lib64 -> usr/lib64)
    35  RUN ln -s /usr/lib64 /lib64