qemu-x86_64: 无法打开 '/lib/ld-musl-x86_64.so.1' 文件:没有那个文件或目录。

7

在尝试执行docker-compose up命令时,是否有人遇到过此错误?

我已经尝试通过查看其他涉及类似问题的文章来解决它,但我没有成功。

我正在尝试使用docker-compose文件运行我的spring boot应用程序,但我一直收到这个错误:

qemu-x86_64: Could not open '/lib/ld-musl-x86_64.so.1': No such file or directory

我尝试根据网上阅读的建议进行修复,但是没有任何效果。

我已经尝试过:

在阅读了这篇帖子之后:https://github.com/nodejs/help/issues/3239 添加了以下内容:

platform: linux/amd64

我尝试将其添加到我的docker-compose文件中,但没有任何区别

并尝试在我的Dockerfile前面添加FROM --platform=linux/amd64

当我读到这个时,我也尝试安装musl,但无法执行make命令

curl https://musl.libc.org/releases/musl-1.2.2.tar.gz -o musl-1.2.2.tar.gz
tar -xvf musl-1.2.2.tar.gz
cd musl-1.2.2
./configure
make 
make install

我的 Docker 文件长这样

FROM azul/zulu-openjdk-alpine:11 as packager

RUN { \
        java --version ; \
        echo "jlink version:" && \
        jlink --version ; \
    }

ENV JAVA_MINIMAL=/opt/jre

# build modules distribution
RUN jlink \
    --verbose \
    --add-modules \
        java.base,java.sql,java.naming,java.desktop,java.management,java.security.jgss,java.instrument \
        # java.naming - javax/naming/NamingException
        # java.desktop - java/beans/PropertyEditorSupport
        # java.management - javax/management/MBeanServer
        # java.security.jgss - org/ietf/jgss/GSSException
        # java.instrument - java/lang/instrument/IllegalClassFormatException
    --compress 2 \
    --strip-debug \
    --no-header-files \
    --no-man-pages \
    --output "$JAVA_MINIMAL"

# Second stage, add only our minimal "JRE" distr and our app
FROM alpine

ENV JAVA_MINIMAL=/opt/jre
ENV PATH="$PATH:$JAVA_MINIMAL/bin"

COPY --from=packager "$JAVA_MINIMAL" "$JAVA_MINIMAL"
COPY "build/libs/company-coordinator-app-0.0.1-SNAPSHOT.jar" "/company-coordinator-app.jar"

EXPOSE 8080
CMD [ "-jar", "/company-coordinator-app.jar" ]
ENTRYPOINT [ "java" ]

我的docker-compose.yml文件如下所示

    version: '2'
services:
  company-coordinator-app:
    container_name: 'company-coordinator-app'
    build:
        context: /Users/ciaran/cmkdev/company-coordinator-project/company-coordinator-app
        dockerfile: Dockerfile
    image: springio/gs-spring-boot-docker
    ports:
      - "8080:8080"

我正在使用M1 mbp运行此程序。

我在阅读这篇帖子时,试图正确构建我的Dockerfile,因为我需要使用Java 11。

Java 11应用作为轻量级Docker镜像

如果有人有任何见解,在此表示感谢。


你介意分享一下你是如何解决这个问题的吗?我在我的alpine DinD镜像中也遇到了同样的错误。 - joe1531
1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接