Debian внезапно выдает «libcrypt.so.1: не удается открыть файл общего объекта: такого файла или каталога нет» в Docker

#docker #dockerfile #debian #apt #debian-buster

Вопрос:

Я уже давно использую следующее изображение Докера (сжатое для краткости) :

 FROM elixir:1.11

ARG USER
ARG GROUP
ARG UID=1000
ARG GID=1000
ARG POSTGRESQL_VERSION=13
ARG POSTGRESQL_CLUSTER=my-cluster
ARG POSTGRESQL_PORT=5432
ARG POSTGRESQL_DIR=/etc/postgresql/$POSTGRESQL_VERSION/$POSTGRESQL_CLUSTER
ARG DEBIAN_FRONTEND=noninteractive

RUN set -xe 
    amp;amp; ln -sf /usr/share/zoneinfo/Portugal /etc/localtime 
    amp;amp; groupadd -g $GID $GROUP 
    amp;amp; useradd -r -u $UID -g $GROUP -m -s /bin/bash -c "Docker image user" $USER 
    amp;amp; apt-get update 
    amp;amp; apt-get install -y lsb-release cmake 
    amp;amp; echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list 
    amp;amp; echo "deb http://deb.debian.org/debian `lsb_release -cs`-backports bullseye main" | tee -a /etc/apt/sources.list.d/pgdg.list 
    amp;amp; echo "deb http://deb.debian.org/debian testing non-free contrib main" | tee -a /etc/apt/sources.list.d/pgdg.list 
    amp;amp; wget -q -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - 
    amp;amp; curl -sL https://deb.nodesource.com/setup_12.x | bash - 
    amp;amp; apt-get update 
    amp;amp; apt-get install -y postgresql-$POSTGRESQL_VERSION inotify-tools libgit2-dev vim expect nodejs lsof
 

Однако я внезапно начал испытывать следующую ошибку:

 #6 31.36 Get:131 http://deb.debian.org/debian testing/main amd64 vim amd64 2:8.2.2434-3 [1494 kB]
#6 31.64 debconf: delaying package configuration, since apt-utils is not installed
#6 31.85 Fetched 175 MB in 6s (30.9 MB/s)
#6 31.87 Selecting previously unselected package gcc-11-base:amd64.
(Reading database ... 36509 files and directories currently installed.)
#6 31.90 Preparing to unpack .../gcc-11-base_11.2.0-4_amd64.deb ...
#6 31.90 Unpacking gcc-11-base:amd64 (11.2.0-4) ...
#6 31.95 Setting up gcc-11-base:amd64 (11.2.0-4) ...
#6 32.00 Selecting previously unselected package libgcc-s1:amd64.
(Reading database ... 36514 files and directories currently installed.)
#6 32.02 Preparing to unpack .../libgcc-s1_11.2.0-4_amd64.deb ...
#6 32.03 Unpacking libgcc-s1:amd64 (11.2.0-4) ...
#6 32.03 Replacing files in old package libgcc1:amd64 (1:8.3.0-6) ...
#6 32.08 Setting up libgcc-s1:amd64 (11.2.0-4) ...
(Reading database ... 36516 files and directories currently installed.)
#6 32.17 Preparing to unpack .../g  _4:10.2.1-1_amd64.deb ...
#6 32.18 Unpacking g   (4:10.2.1-1) over (4:8.3.0-1) ...
#6 32.21 Preparing to unpack .../gcc_4:10.2.1-1_amd64.deb ...
#6 32.22 Unpacking gcc (4:10.2.1-1) over (4:8.3.0-1) ...
(Reading database ... 36516 files and directories currently installed.)
#6 32.32 Removing g  -8 (8.3.0-6) ...
#6 32.41 dpkg: gcc-8: dependency problems, but removing anyway as you requested:
#6 32.41  libtool depends on gcc | c-compiler; however:
#6 32.41   Package gcc is not configured yet.
#6 32.41   Package c-compiler is not installed.
#6 32.41   Package gcc-8 which provides c-compiler is to be removed.
#6 32.41   Package gcc which provides c-compiler is not configured yet.
#6 32.41
#6 32.41 Removing gcc-8 (8.3.0-6) ...
#6 32.44 dpkg: libgcc-8-dev:amd64: dependency problems, but removing anyway as you requested:
#6 32.44  libstdc  -8-dev:amd64 depends on libgcc-8-dev (= 8.3.0-6).
#6 32.44
#6 32.44 Removing libgcc-8-dev:amd64 (8.3.0-6) ...
(Reading database ... 36304 files and directories currently installed.)
#6 32.55 Preparing to unpack .../libc6_2.31-17_amd64.deb ...
#6 32.66 Checking for services that may need to be restarted...
#6 32.67 Checking init scripts...
#6 32.69 Unpacking libc6:amd64 (2.31-17) over (2.28-10) ...
#6 33.57 Setting up libc6:amd64 (2.31-17) ...
#6 33.60 /usr/bin/perl: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
#6 33.60 dpkg: error processing package libc6:amd64 (--configure):
#6 33.60  installed libc6:amd64 package post-installation script subprocess returned error exit status 127
#6 33.61 Errors were encountered while processing:
#6 33.61  libc6:amd64
#6 33.72 E: Sub-process /usr/bin/dpkg returned an error code (1)
 

Попробовав некоторые изменения и пройдя методом проб и ошибок, я считаю, что виновником является команда

 echo "deb http://deb.debian.org/debian testing non-free contrib main" | tee -a /etc/apt/sources.list.d/pgdg.list
 

Я подозреваю, что это связано с недавним выпуском Debian Bullseye, но я не уверен. Мне нужно testing , чтобы репозиторий получал libgit2-dev версию 1.0.0 начиная с (загрузка стабильного репозитория 0.27.0 ).

Некоторые исправления, которые я пробовал, были установлены libssl-dev и другие пакеты, связанные с криптографией, но пока ничего не работает. Если я удалю команду, показанную выше, она будет работать, но установит более старую версию libgit2 .

Любая помощь будет признательна