首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整到M1芯片的复合芯片?

调整到M1芯片的复合芯片?
EN

Stack Overflow用户
提问于 2022-01-10 20:45:42
回答 1查看 4.4K关注 0票数 0

我有一个docker-compose.yml,它构建了大约8个容器,主要由mysql、postgres、php-nginx和其他一些定制构建包组成。生产版本在UBUNTU主机上运行,我的开发包运行在带有Intel芯片的Mac上。整件事也是以私人回购的方式在吉特布上进行的。

协作者有一个M1 Mac,我可能会在今年晚些时候升级到M1 Mac,要么是MacBook Pro,要么是27“iMac。

我们试着在他的M1 Mac上安装这个软件包,遇到了一些问题,可能还有更多的问题。

一个问题似乎与撰写文件中的MySQL构建有关(一些项被删除)

代码语言:javascript
复制
  mysql_db:
    image: mysql:8.0.26
    container_name: mysql_db
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
      --max-allowed-packet=67108864
      #--general-log=TRUE
      #--general-log-file=/var/lib/mysql/mysql-log.log
    restart: unless-stopped
    ports:
      - "3333:3306"
    healthcheck:
      test: mysqladmin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD
    security_opt:
      - seccomp:unconfined
    tty: true
    environment:
      TZ: ""
      MYSQL_ROOT_PASSWORD: ''
      MYSQL_USER: ''
      MYSQL_PASSWORD: ''
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql

    volumes:

      - ./MySQL_DB:/var/lib/mysql/
      - ./mysql_init:/docker-entrypoint-initdb.d

看起来有几种方法可以解决这个问题,如下所示:

Docker (Apple Silicon/M1 Preview) MySQL "no matching manifest for linux/arm64/v8 in the manifest list entries

在这里:

https://dev.to/lakhansamani/create-docker-image-on-apple-silicon-m1-mac-2f75

通过指定--平台linux/amd64 64在CLI或平台上: linux/amd64 64在撰写文件中.

在我的一个DockerFiles中,我也有:

代码语言:javascript
复制
COPY wkhtmltox_0.12.6-1.buster_amd64.deb /
RUN dpkg -i wkhtmltox_0.12.6-1.buster_amd64.deb

这是一个用于wkhtmltopdf的debian包(我认为是QT支持)。

这里有预构建包的下载:

https://wkhtmltopdf.org/downloads.html

该包有一个ARM64版本可供使用。

只是想弄清楚如何配置构建(docker-compose.yml,DockerFiles等等)这样它就可以基本建立在任何架构之上。

如果有一种方法来检测docker中的架构-Compose.yml和DockerFiles,那么这可能是最好的方法,这样它就可以构建适当的mysql包,并为whtmltopdf使用适当的debian包。我怀疑我可能会在php、postgres和nginx构建方面遇到其他问题,但我们还没有做到这一点。

协作者也有一台Windows机器,我认为这是可行的,但我很快就会转向M1 Mac。

只是想找到最好的方法来处理这个问题,这样我们就不必为不同的体系结构保留单独的构建了。

这是更详细的:

https://www.docker.com/blog/faster-multi-platform-builds-dockerfile-cross-compilation-guide/

在我的例子中,可能是.deb包变体可能是唯一需要修复的其他项目,也许我可以使用apt-get来代替,但是我可能会为此失去QT支持。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-11 14:27:41

对于M1处理器,您必须指定平台

代码语言:javascript
复制
services:
  mysql_db:
    platform: linux/x86_64
    image: mysql:8.0.26

或者,您可以使用MariaDB进行开发。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70658693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档