sni*_*isl 7 docker docker-compose airflow apple-m1 mwaa
我有一个 Docker 文件,它创建一个图像,然后使用 docker compose 与使用 Postgres 图像构建的容器一起运行它。(为了设置 Airflow 的本地环境 - 我们使用 mwaa 本地运行器)。
\n最近我买了一台新的 M1 pro 机器,但我\xe2\x80\x99m 遇到了运行容器的问题。
\n根据我的理解,问题是正在构建图像,然后使用我的机器运行,该机器具有不同类型的 cpu 架构,这导致 pip 寻找这种架构的轮子。我的大学有一台英特尔 Mac,他说他\xe2\x80\x99 没有遇到任何问题。
\n构建阶段没问题,但是当我运行容器时,我们\xe2\x80\x99ve设置docker compose来运行一个入口点脚本,该脚本还安装了一些气流提供程序和其他依赖项,其中之一是plyvel,它无法安装并导致其他软件包也不要安装。当我从requirements.txt 文件中删除plyvel 时,安装完成,但我的一些气流提供程序缺少一些文件或属性,从而产生了自己的问题。
\n我尝试通过将构建命令更改为:\n 来强制 docker 使用 amd64 构建和运行图像和容器:\ndocker build --platform linux/amd64 --rm --compress $3 -t amazon/mwaa-local:2.2 ./docker运行但运行速度非常慢。\n此外,platform: linux/amd64在 docker-compose 文件中添加到 postgres 和本地运行程序容器。 \n然后,当我启动容器时,当我可以在网络浏览器中访问气流 ui 时,需要很长时间才能进入工作状态,然后 ui 中的速度非常慢 - 每个链接都需要几秒钟处理并引导我到新地方。我相信这是由于某种模拟或其他原因造成的。
然后我找到了这篇文章:\n https://medium.com/nttlabs/buildx-multiarch-2c6c2df00ca2
\n它说有一种更快的方法可以在没有模拟的情况下运行,但我不\xe2\x80\x99不明白如何实现。
\n另外,发现了这个 Reddit 线程:\n https://www.reddit.com/r/docker/comments/qlrn3s/docker_on_m1_max_horrible_performance/
\n他们建议在虚拟机内构建和运行容器,不确定这是否适合我的情况。
\n我尝试了 Docker Desktop 和 Rancher Desktop(使用 dockerd ),但都显示了相同的症状。
\n