You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure SQL Edge容器启动报错:sqlcmd未找到(Mac M1可正常运行)

解决Azure Edge镜像中sqlcmd未找到的问题

可能的原因

  • 架构差异:Mac M1为arm64架构,azure-edge的arm64版本可能默认预装sqlcmd,但amd64版本需手动触发安装流程
  • EULA关联逻辑:sqlcmd的自动安装依赖ACCEPT_EULA环境变量,未接受EULA时镜像不会预装该工具

修复方案

1. 明确指定镜像架构(非arm64环境)

若运行环境为amd64,在Dockerfile中指定对应架构的镜像版本,避免拉取不匹配的镜像:

FROM mcr.microsoft.com/azure-sql-edge:latest-amd64

2. 手动安装sqlcmd工具

在Dockerfile中添加手动安装步骤,绕过自动安装的依赖限制:

FROM mcr.microsoft.com/azure-sql-edge:latest

# 安装sqlcmd及依赖组件
RUN apt-get update && apt-get install -y \
    curl \
    apt-transport-https \
    && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
    && curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list \
    && apt-get update \
    && ACCEPT_EULA=Y apt-get install -y mssql-tools18 \
    && echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

3. 修正启动命令路径

启动容器时直接使用sqlcmd的完整路径,避免PATH配置问题:

docker run -e ACCEPT_EULA=Y -e SA_PASSWORD=YourStrongPass@123 mcr.microsoft.com/azure-sql-edge:latest /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P YourStrongPass@123 -Q "SELECT @@VERSION"

4. 交互式排查容器环境

若问题仍存在,启动容器进入交互式模式检查环境:

docker run -it -e ACCEPT_EULA=Y -e SA_PASSWORD=YourStrongPass@123 mcr.microsoft.com/azure-sql-edge:latest bash
# 进入容器后执行以下命令排查
echo $PATH
which sqlcmd

内容的提问来源于stack exchange,提问作者Alexei Safronov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:20:20