Docker Ubuntu 18.04 无法安装 msodbcsql17 SQL 服务器 ODBC 驱动程序 17
Docker Ubuntu 18.04 unable to install msodbcsql17 SQL Server ODBC Driver 17
我有下面的 ubuntu docker 文件,我想在其中添加 SQL Server ODBC Driver 17 以进行安装。当我构建 docker 文件时,出现错误:
'/bin/sh -c apt-get install msodbcsql17' 返回非零代码:1
你能帮忙吗?
我在我的 Ubuntu VM 中按照文章中的步骤操作,它工作正常,我能够 运行 我的 python 程序。但是,当我使用 docker 文件时,出现错误
FROM ubuntu:18.04
RUN apt update -y && apt upgrade -y && apt-get update
RUN apt install -y curl python3.7 git python3-pip openjdk-8-jdk unixodbc-dev
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN exit
#RUN ACCEPT_EULA=Y apt-get install msodbcsql17
RUN apt-get update
RUN ACCEPT_EULA=Y
RUN apt-get install msodbcsql17
#RUN ACCEPT_EULA=Y apt install msodbcsql17
RUN ACCEPT_EULA=Y apt install mssql-tools
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
COPY startup.sh /
RUN chmod +x /startup.sh
ENTRYPOINT ["sh","/startup.sh"]
我可以让它工作。下面是更新后的 Docker 文件片段
FROM ubuntu:18.04
RUN apt update -y && apt upgrade -y && apt-get update
RUN apt install -y curl python3.7 git python3-pip openjdk-8-jdk unixodbc-dev
# Add SQL Server ODBC Driver 17 for Ubuntu 18.04
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update
RUN ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated msodbcsql17
RUN ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated mssql-tools
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
COPY startup.sh /
RUN chmod +x /startup.sh
ENTRYPOINT ["sh","/startup.sh"]
如果您使用的是 WSL2,则此错误可能是由于时钟问题不正确造成的。
打开 wsl2 和 运行
sudo hwclock --hctosys
参考时钟:https://www.thegeekstuff.com/2013/08/hwclock-examples/
wsl2 问题:https://github.com/microsoft/WSL/issues/5324
这可能会解决在 windows
中使用支持 docker 的 WSL2 时 apt-get 的问题
作为 Suraj 的补充
如果您将第一个语句替换为:
,他的回答适用于 Macbook M1
FROM --platform=linux/amd64 ubuntu:18.04
我有下面的 ubuntu docker 文件,我想在其中添加 SQL Server ODBC Driver 17 以进行安装。当我构建 docker 文件时,出现错误: '/bin/sh -c apt-get install msodbcsql17' 返回非零代码:1
你能帮忙吗?
我在我的 Ubuntu VM 中按照文章中的步骤操作,它工作正常,我能够 运行 我的 python 程序。但是,当我使用 docker 文件时,出现错误
FROM ubuntu:18.04
RUN apt update -y && apt upgrade -y && apt-get update
RUN apt install -y curl python3.7 git python3-pip openjdk-8-jdk unixodbc-dev
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN exit
#RUN ACCEPT_EULA=Y apt-get install msodbcsql17
RUN apt-get update
RUN ACCEPT_EULA=Y
RUN apt-get install msodbcsql17
#RUN ACCEPT_EULA=Y apt install msodbcsql17
RUN ACCEPT_EULA=Y apt install mssql-tools
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
COPY startup.sh /
RUN chmod +x /startup.sh
ENTRYPOINT ["sh","/startup.sh"]
我可以让它工作。下面是更新后的 Docker 文件片段
FROM ubuntu:18.04
RUN apt update -y && apt upgrade -y && apt-get update
RUN apt install -y curl python3.7 git python3-pip openjdk-8-jdk unixodbc-dev
# Add SQL Server ODBC Driver 17 for Ubuntu 18.04
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update
RUN ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated msodbcsql17
RUN ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated mssql-tools
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
COPY startup.sh /
RUN chmod +x /startup.sh
ENTRYPOINT ["sh","/startup.sh"]
如果您使用的是 WSL2,则此错误可能是由于时钟问题不正确造成的。
打开 wsl2 和 运行
sudo hwclock --hctosys
参考时钟:https://www.thegeekstuff.com/2013/08/hwclock-examples/
wsl2 问题:https://github.com/microsoft/WSL/issues/5324
这可能会解决在 windows
中使用支持 docker 的 WSL2 时 apt-get 的问题作为 Suraj 的补充
如果您将第一个语句替换为:
,他的回答适用于 Macbook M1FROM --platform=linux/amd64 ubuntu:18.04