我有一个docker-compose.yml,它构建了大约8个容器,主要由mysql、postgres、php-nginx和其他一些定制构建包组成。生产版本在UBUNTU主机上运行,我的开发包运行在带有Intel芯片的Mac上。整件事也是以私人回购的方式在吉特布上进行的。
协作者有一个M1 Mac,我可能会在今年晚些时候升级到M1 Mac,要么是MacBook Pro,要么是27“iMac。
我们试着在他的M1 Mac上安装这个软件包,遇到了一些问题,可能还有更多的问题。
一个问题似乎与撰写文件中的MySQL构建有关(一些项被删除)
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看起来有几种方法可以解决这个问题,如下所示:
在这里:
https://dev.to/lakhansamani/create-docker-image-on-apple-silicon-m1-mac-2f75
通过指定--平台linux/amd64 64在CLI或平台上: linux/amd64 64在撰写文件中.
在我的一个DockerFiles中,我也有:
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支持。
发布于 2022-01-11 14:27:41
对于M1处理器,您必须指定平台
services:
mysql_db:
platform: linux/x86_64
image: mysql:8.0.26或者,您可以使用MariaDB进行开发。
https://stackoverflow.com/questions/70658693
复制相似问题