您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Docker:无法访问复制到某些图像的二进制文件

Docker:无法访问复制到某些图像的二进制文件

看起来您的工作正常,但只是为了阐明可能会发现您问题的其他人的情况:

问题是,该版本migrate/migrate:v4.6.2基于使用MUSL libcAlpine映像构建,而其他大多数发行版都使用glibc。您将收到“未找到”消息,因为内核正在寻找路径已嵌入映像中的动态加载器,如我们在ldd命令中看到的:

/ # ldd /migrate
        /lib/ld-musl-x86_64.so.1 (0x7f9e42ebd000)
        libc.musl-x86_64.so.1 => /lib/ld-musl-x86_64.so.1 (0x7f9e42ebd000)

该二进制文件将在基于Alpine的映像上可用,但不能在Debian,Ubuntu,Fedora,CentOS等映像上使用。一种选择是简单地在Dockerfile中复制必要的加载程序:

FROM migrate/migrate:v4.6.2 AS migrate
FROM debian:buster-slim
COPY --from=migrate /migrate /
COPY --from=migrate /lib/ld-musl-x86_64.so.1 /lib/ld-musl-x86_64.so.1

CMD "/migrate"

一个解决方案是migrate为您的目标发行版重建命令。

其他 2022/1/1 18:15:38 有436人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶