Sql server Docker Ubuntu 18.04无法安装msodbcsql17 SQL Server ODBC驱动程序17
我有下面的ubuntu docker文件,我想在其中添加SQL Server ODBC驱动程序17进行安装。构建docker文件时,我收到一个错误: “/bin/sh-c apt get install msodbcsql17”返回一个非零代码:1 你能帮忙吗 我指的是— 我在我的Ubuntu虚拟机中遵循了文章中的步骤,它运行良好,我能够运行我的python程序。然而,当我使用docker文件时,我得到了错误Sql server Docker Ubuntu 18.04无法安装msodbcsql17 SQL Server ODBC驱动程序17,sql-server,docker,odbc,dockerfile,ubuntu-18.04,Sql Server,Docker,Odbc,Dockerfile,Ubuntu 18.04,我有下面的ubuntu docker文件,我想在其中添加SQL Server ODBC驱动程序17进行安装。构建docker文件时,我收到一个错误: “/bin/sh-c apt get install msodbcsql17”返回一个非零代码:1 你能帮忙吗 我指的是— 我在我的Ubuntu虚拟机中遵循了文章中的步骤,它运行良好,我能够运行我的python程序。然而,当我使用docker文件时,我得到了错误 FROM ubuntu:18.04 RUN apt update -y &
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
参考时钟:wsl2问题:
这可能会解决在使用支持WSL2的windows docker时apt get的问题Rry:
运行DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt get安装-Y mssql tools unixodbc dev\&&echo'export PATH=“$PATH:/opt/mssql tools/bin”>~/.bash_profile\&echo'export PATH=“$PATH:/opt/mssql tools/bin”'>>~/.bashrc
谢谢您提供的详细信息,但这不起作用。我收到错误-无法找到mssql工具。我试着使用msodbcsql17,我也遇到了同样的错误。你是否设法修复了这个@Suraj?@EdBaker为迟来的回复道歉。是的,我可以得到修复。我已经分享了下面的详细信息,无忧@Suraj-我在debian 10上实现了它,我不得不在openssl中将TLS版本更改为1.0,这很有效。我想指出,您在代码中同时使用了apt
和apt get
。这些都是相同的(在Ubuntu 16.04/Debian 8之后,因为apt
存在)。您只需在apt update中重复相同的操作即可。。。apt获取更新。