如何让docker-compose在M1芯片上工作?

问题描述 投票:0回答:2

我是 m1 macbook 的新手,在运行 docker-compose 时遇到问题,如下所示:

version: "3.7"

services:
  search:
    platform: linux/x86_64
    build:
      context: .
      dockerfile: Dockerfile.kubectl
  

还有 Dockerfile:

FROM ubuntu:latest

RUN apt-get update && apt-get install -y apt-transport-https curl gnupg2 unzip
RUN curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
RUN echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list
RUN apt-get update && apt-get install -y kubectl

RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && unzip awscliv2.zip && rm awscliv2.zip
RUN ./aws/install

运行后出现这样的错误:

2021-09-30T13:24:52.816038712Z /lib64/ld-linux-x86-64.so.2: No such file or directory

解决此问题的具体步骤是什么?我的 Docker 版本是 4.1.1

docker docker-compose apple-m1
2个回答
28
投票

对我来说,我添加了

platform: linux/amd64

示例:

version: "3.7"

services:
  search:
    platform: linux/amd64
    build:
      context: .
      dockerfile: Dockerfile.kubectl

2
投票

我相信您正在运行的映像是针对x86_64平台的,因此它尝试查找x86-64.so,但您在arm机器上,所以它不起作用。您可以安装arm64的映像或尝试运行如下命令:

docker run --platform linux/x86_64 <image>
© www.soinside.com 2019 - 2024. All rights reserved.