Lmabda antivirus-update error.

b'./bin/freshclam: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory\n'

In the Dockerfile, the command "RUN yum install -y libtool-ltdl" is implemented to install the necessary packages. However, the error mentioned above occurs.

This code is for a Lambda function that performs virus scanning on files stored in S3.

Dockerfile

FROM amazonlinux:2

# Set up working directories
RUN mkdir -p /opt/app
RUN mkdir -p /opt/app/build
RUN mkdir -p /opt/app/bin/
RUN mkdir -p /opt/app/lib/

# Copy in the lambda source
WORKDIR /opt/app
COPY ./*.py /opt/app/
COPY requirements.txt /opt/app/requirements.txt

# Install packages
RUN yum update -y
RUN yum install -y cpio python3-pip yum-utils zip unzip less
RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

# Install Packages for Python3.11
RUN yum remove openssl-devel
RUN yum install -y openssl11 openssl11-devel

RUN yum install -y wget
RUN wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz
RUN yum install -y tar gzip
RUN tar -xzf Python-3.11.0.tgz
RUN yum install -y make gcc nss json-c-devel
RUN cd Python-3.11.0 && \
    ./configure --enable-optimizations && \
    nproc && \
    make -j 8 && \
    make install
RUN rm -f Python-3.11.0.tgz

# This had --no-cache-dir, tracing through multiple tickets led to a problem in wheel
RUN pip3 install -r requirements.txt
RUN rm -rf /root/.cache/pip

RUN yum install -y libtool-ltdl

# Download libraries we need to run in lambda
WORKDIR /tmp
RUN yumdownloader -x \*i686 --archlist=x86_64 clamav clamav-lib clamav-update json-c pcre2 libprelude gnutls libtasn1 lib64nettle nettle
RUN rpm2cpio clamav-0*.rpm | cpio -idmv
RUN rpm2cpio clamav-lib*.rpm | cpio -idmv
RUN rpm2cpio clamav-update*.rpm | cpio -idmv
RUN rpm2cpio json-c*.rpm | cpio -idmv
RUN rpm2cpio pcre*.rpm | cpio -idmv
RUN rpm2cpio gnutls* | cpio -idmv
RUN rpm2cpio nettle* | cpio -idmv
RUN rpm2cpio lib* | cpio -idmv
RUN rpm2cpio *.rpm | cpio -idmv
RUN rpm2cpio libtasn1* | cpio -idmv

# Copy over the binaries and libraries
RUN cp /tmp/usr/bin/clamscan /tmp/usr/bin/freshclam /tmp/usr/lib64/* /opt/app/bin/
RUN cp /tmp/usr/bin/clamscan /tmp/usr/bin/freshclam /tmp/usr/lib64/* /opt/app/lib
RUN cp /usr/lib64/libpthread.so.* /usr/lib64/libc.so.* /usr/lib64/libjson-c.so.* /usr/lib64/libbz2.so.* /usr/lib64/libxml2.so.* /usr/lib64/libdl.so.* /usr/lib64/libssl.so.* /usr/lib64/libcrypto.so.* /usr/lib64/libcrypt.so.* /usr/lib64/libz.so.* /usr/lib64/libpcre.so.* /usr/lib64/libm.so.* /usr/lib64/ld-linux-x86-64.so.* /usr/lib64/liblzma.so.* /usr/lib64/libgssapi_krb5.so.* /usr/lib64/libkrb5.so.* /usr/lib64/libcom_err.so.* /usr/lib64/libk5crypto.so.* /usr/lib64/libkrb5support.so.* /usr/lib64/libkeyutils.so.* /usr/lib64/libresolv.so.* /usr/lib64/libselinux.so.* /usr/lib64/libnssutil3.so /usr/lib64/libnss3.so /usr/lib64/libsmime3.so /usr/lib64/libssl3.so /usr/lib64/libsasl2.so.* /usr/lib64/libunistring.so.* /usr/lib64/liblber-2.4.so.* /usr/lib64/libldap-2.4.so.* /usr/lib64/libssh2.so.* /usr/lib64/libidn2.so.* /usr/lib64/libnghttp2.so.* /usr/lib64/libcurl.so.* /usr/lib64/libstdc++.so.* /usr/lib64/libgcc_s.so.* /usr/lib64/libplds4.so /usr/lib64/libplc4.so /usr/lib64/libnspr4.so /usr/lib64/librt.so.* /opt/app/bin
RUN cp /usr/lib64/libpthread.so.* /usr/lib64/libc.so.* /usr/lib64/libjson-c.so.* /usr/lib64/libbz2.so.* /usr/lib64/libxml2.so.* /usr/lib64/libdl.so.* /usr/lib64/libssl.so.* /usr/lib64/libcrypto.so.* /usr/lib64/libcrypt.so.* /usr/lib64/libz.so.* /usr/lib64/libpcre.so.* /usr/lib64/libm.so.* /usr/lib64/ld-linux-x86-64.so.* /usr/lib64/liblzma.so.* /usr/lib64/libgssapi_krb5.so.* /usr/lib64/libkrb5.so.* /usr/lib64/libcom_err.so.* /usr/lib64/libk5crypto.so.* /usr/lib64/libkrb5support.so.* /usr/lib64/libkeyutils.so.* /usr/lib64/libresolv.so.* /usr/lib64/libselinux.so.* /usr/lib64/libnssutil3.so /usr/lib64/libnss3.so /usr/lib64/libsmime3.so /usr/lib64/libssl3.so /usr/lib64/libsasl2.so.* /usr/lib64/libunistring.so.* /usr/lib64/liblber-2.4.so.* /usr/lib64/libldap-2.4.so.* /usr/lib64/libssh2.so.* /usr/lib64/libidn2.so.* /usr/lib64/libnghttp2.so.* /usr/lib64/libcurl.so.* /usr/lib64/libpsl.so.* /usr/lib64/libstdc++.so.* /usr/lib64/libgcc_s.so.* /usr/lib64/libplds4.so /usr/lib64/libplc4.so /usr/lib64/libnspr4.so /usr/lib64/librt.so.* /opt/app/lib

ENV LD_LIBRARY_PATH=/opt/app/bin:${LD_LIBRARY_PATH}


# Fix the freshclam.conf settings
RUN echo "DatabaseMirror database.clamav.net" > /opt/app/bin/freshclam.conf
RUN echo "CompressLocalDatabase yes" >> /opt/app/bin/freshclam.conf

# Create the zip file
WORKDIR /opt/app
RUN zip -r9 --exclude="*test*" /opt/app/build/lambda.zip *.py bin lib

WORKDIR /usr/local/lib/python3.11/site-packages
RUN zip -r9 /opt/app/build/lambda.zip *

WORKDIR /opt/app

requirements.txt

requests==2.31.0
certifi==2018.11.29
chardet==5.1.0
datadog==0.47.0
decorator==5.1.1
idna==3.4
simplejson==3.19.2
urllib3==2.0.7
pytz==2023.3
0

There are 0 best solutions below