树莓派Docker环境运行Laravel 8时MySQL容器启动失败如何解决
树莓派运行Laravel Sail MySQL启动失败解决方案
问题根源
你遇到的是架构不兼容问题:官方Docker Hub的mysql镜像仅提供x86架构构建版本,树莓派运行的64位Ubuntu属于ARM64架构,拉取x86架构镜像后无法正常执行,就是你截图中报错的核心原因。你之前更换的MySQL5.7镜像同样是x86架构,因此无法解决问题。
解决步骤
- 第一步:替换兼容ARM64的数据库镜像
修改docker-compose.yml中mysql服务的image配置,推荐选择完全兼容MySQL语法的MariaDB(Sail原生支持),将配置替换为:
如果你坚持使用官方MySQL,可替换为多架构适配的官方MySQL镜像:image: 'mariadb:10.11'image: 'mysql/mysql-server:8.0' - 第二步:清理之前启动残留的错误数据
执行以下命令删除错误启动生成的容器和关联存储卷(如果有需要保留的数据库数据请提前备份):
加sail down -v-v参数是为了删除关联的数据库存储卷,避免旧的错误数据导致新镜像启动异常。 - 第三步:重新启动服务
执行以下命令重新构建并启动容器:sail build --no-cache sail up -d
额外说明
如果后续其他服务也出现同类启动报错,都可以通过替换为支持ARM64架构的镜像解决,Redis、Nginx等常用服务的官方镜像默认都已提供ARM64适配,一般不会出现同类问题。
内容的提问来源于stack exchange,提问作者Martin Sagat
相关产品推荐
相关产品推荐

