M1 Mac Docker 问题与 apt-get 更新

时间:2021-07-13 21:14:49

标签: docker dockerfile debian apt apple-m1

我在将 Microsoft 软件包列表添加到我的 M1 macbook pro 上运行的 Dockerfile 中的 apt-get 时遇到问题。我可以在旧的 Windows 笔记本电脑上运行它,但现在在我的 Mac 上,我收到了 Unable to locate package msodbcsql17 错误。作为完整性检查,我还尝试先安装 mssql-tools,但也未找到该软件包,因此将这些软件包添加到 apt-get 的整个过程似乎都失败了。为了让 m1 mac 和使用经典架构的机器都能正常工作,我能做些什么吗?

FROM python:3.7

WORKDIR /app/repo

RUN mkdir /app/docker_volume

RUN apt-get update \
 && apt-get install unixodbc -y \
 && apt-get install unixodbc-dev -y \
 && apt-get install freetds-dev -y \
 && apt-get install freetds-bin -y \
 && apt-get install tdsodbc -y \
 && apt-get install --reinstall build-essential -y

RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update
RUN ACCEPT_EULA=Y apt-get install -y msodbcsql17
RUN ACCEPT_EULA=Y apt-get install -y mssql-tools
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
RUN /bin/bash -c "source ~/.bashrc"```

1 个答案:

答案 0 :(得分:0)

curl 命令抓取的包列表引用了您系统的架构,由于目前没有用于 arm64 架构的 mssql-tools 或 msodbcsql17 包,我收到了无法定位错误。当前的解决方案是更改 Dockerfile 的第一行以使用 FROM --platform=linux/amd64 python:3.7

指定平台