gpt4 book ai didi

macos - 如何从 Intel Mac 在 Silicon Mac M1 上运行 Dockerfile

转载 作者:行者123 更新时间:2023-12-01 23:29:42 30 4
gpt4 key购买 nike

我的母语不是英语,但我想在 Stack Overflow 上问一个问题。我是 Docker 的初学者。

我正在尝试在 Intel mac 的 Silicon Mac M1 上设置开发环境。

#!/bin/sh
set -e
. ./env.list
# Build Docker image
# docker pull store/ibmcorp/db2_developer_c:11.1.4.4-x86_64
docker build -t ${REPOSITORY}:${TAG} .

# DOCKERFILE
FROM store/ibmcorp/db2_developer_c:11.1.4.4-x86_64
RUN yum -y update && yum clean all
RUN curl ftp://ftp.pbone.net/mirror/vault.centos.org/7.8.2003/os/x86_64/Packages/glibc-common-2.17-307.el7.1.x86_64.rpm > /tmp/glibc-common.rpm
RUN rm -f /etc/localtime
RUN mkdir /var/custom

我遇到了如下错误

Step 2/30 : RUN yum -y update && yum clean all
---> [Warning] The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

我已经添加了另一个 docker run 命令--platform linux/amd64

#!/bin/bash
. ./env.list
docker rm -f api-db
docker run --name api-db -h db2server --restart=always --detach --privileged=true -p 50000:50000 -p 55000:55000 --platform linux/amd64 --env-file env.list sample-app:v1.0

我应该为 dockerfile 做什么?

非常感谢您的阅读。

祝你有美好的一天! :)

最佳答案

Apple M1 是 arm64v8 指令集处理器,因此您无法在没有仿真的情况下在其上运行 amd64 (X86_64)。一般来说,如果设置了基于 bitfmt 的模拟(并且在具有 intel CPU 的 maxOS 上已经设置了),则 Docker 能够模拟其他架构,但是对于 amd64 的模拟M1 上的/code> 还不稳定。这意味着在一段时间内您将被限制使用“arm64”图像。

要在构建过程中为您的架构获取正确的镜像,您需要添加以下内容。

FROM --platform linux/arm64 <image name>

您需要检查是否有用于arm的db2开发环境的镜像

docker pull --platform linux/arm64 store/ibmcorp/db2_developer_c

关于macos - 如何从 Intel Mac 在 Silicon Mac M1 上运行 Dockerfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66504379/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com