Dockerfile的base镜像是mongo:5.0
mongo:5.0的内核是Ubuntu 20.04.3, 需要安装musl。
apt-get update -y
apt-get install musl
安装完musl后,需要把/usr/lib/x86_64-linux-musl/libc.so 软连接到/usr/lib/libc.musl-x86_64.so.1
到此问题解决。
最后完整的Dockerfile内容
FROM mongo:5.0
ADD init.sh /init.sh
ADD ./dump /RUN \
chmod +x /init.sh \
&& apt-get update -y \
&& apt-get dist-upgrade -y \
&& apt-get install dos2unix \
&& apt-get install psmisc -y -q \
&& apt-get autoremove -y && apt-get clean \
&& rm -rf /var/cache/* \
&& rm -rf /var/lib/apt/lists/* \
&& dos2unix -n /init.sh /initx.sh \
&& chmod +x /initx.sh \
# 必须要再次更新才能安装musl
&& apt-get update -y \
# 根据报错缺少libc.musl-x86_64.so.1,当前mongo:5.0内核是Ubuntu 20.04.3,需要安装musl。
&& apt-get install -y musl \
# 安装musl以后,将/usr/lib/x86_64-linux-musl/libc.so 软连接到/usr/lib/libc.musl-x86_64.so.1
&& ln -s /usr/lib/x86_64-linux-musl/libc.so /usr/lib/libc.musl-x86_64.so.1
ENTRYPOINT ["/initx.sh"]