You need to enable JavaScript to run this app. Apple Silicon M1上Docker构建无法找到msodbcsql17包该如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Apple Silicon M1上Docker构建无法找到msodbcsql17包该如何解决

M1芯片Docker构建无法找到msodbcsql17包解决方案

问题原因

Apple Silicon M1属于ARM64架构,微软官方未发布适配ARM64架构Ubuntu 18.04版本的msodbcsql17、mssql-tools安装包,所以APT检索对应资源失败,导致构建报错退出。

解决方案

方案1:模拟x86架构运行(无代码修改,兼容性最高)

直接强制Docker使用x86_64架构转译运行,依赖MacOS自带的Rosetta2转译层完成兼容:

  • 单独构建镜像时执行命令:docker buildx build --platform linux/amd64 .
  • 使用docker-compose构建时,在laravel-app服务配置块中添加平台指定参数即可,原有其他配置不用修改:
services:
  laravel-app:
    platform: linux/amd64
    # 此处保留你原有laravel-app服务的所有配置

该方案的缺点是转译运行会损失部分性能,性能比原生ARM运行低20%左右。

方案2:原生ARM适配(性能最优)

需要调整Dockerfile内容使用适配ARM的ODBC版本:

  • 将基础镜像从Ubuntu 18.04升级到Ubuntu 22.04及以上版本
  • 把原有安装命令中的msodbcsql17替换为msodbcsql18,微软从18版本开始提供ARM64架构的官方安装包
  • 调整完后重新构建即可原生运行,性能损失极小

如果业务逻辑强制要求依赖ODBC 17版本,该方案不适用。

方案3:移除不需要的依赖

如果你的项目不需要对接SQL Server数据库,直接从APT安装列表中删除msodbcsql17、mssql-tools两个包即可正常构建。

内容的提问来源于stack exchange,提问作者Felipe Brito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 03:45:02