qemu-x86_64:无法打开“/lib/ld-musl-x86_64.so.1”:没有这样的文件或目录

cod*_*kin 9 java musl dockerfile docker-compose

有没有人在尝试执行命令时遇到此错误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
Run Code Online (Sandbox Code Playgroud)

我试图按照我在网上阅读的建议来修复它,但没有任何效果。

我努力了:

阅读这篇文章后: https: //github.com/nodejs/help/issues/3239 添加以下内容

platform: linux/amd64
Run Code Online (Sandbox Code Playgroud)

到我的 docker-compose 文件,但没有什么区别

FROM --platform=linux/amd64在我的 Dockerfile 前面尝试过

当我读到这篇文章时,我也尝试安装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
Run Code Online (Sandbox Code Playgroud)

我的 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" ]
Run Code Online (Sandbox Code Playgroud)

我的 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"
Run Code Online (Sandbox Code Playgroud)

我在 M1 mbp 上运行这个

我在这里阅读了这篇文章,试图正确构建我的 Dockerfile,因为我需要使用 Java 11。

Java 11 应用程序作为轻量级 docker 镜像

如果有人在这里有任何见解,我们将不胜感激。

小智 2

看来 azul/zulu-openjdk-alpine:11 没有在 Apple 芯片架构上运行所需的 arm64 映像。

尝试更新到支持arm64的jdk 17镜像https://hub.docker.com/r/azul/zulu-openjdk-alpine/