[英]Laravel Sail/Docker - Unable to locate package msodbcsql17
[英]Docker Ubuntu 18.04 unable to install msodbcsql17 SQL Server ODBC Driver 17
我有下面的 ubuntu docker 文件,我想在其中添加 SQL 服務器 ZF89750C5A27 安裝驅動程序。 當我構建 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
當使用 WSL2 支持的 docker for windows 時,這可能會解決 apt-get 的問題
作為 Suraj 的補充
如果您將第一個語句替換為以下內容,他的答案適用於 Macbook M1:
FROM --platform=linux/amd64 ubuntu:18.04
我的工作過
RUN apt-get install -y unixodbc-dev && apt-get update && apt-get upgrade \
&& wget http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/multiarch-support_2.27-3ubuntu1_amd64.deb \
&& apt-get install ./multiarch-support_2.27-3ubuntu1_amd64.deb \
&& apt-get update \
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list \
&& apt-get update \
&& ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated msodbcsql17 \
&& apt-get update \
&& ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated mssql-tools \
&& apt-get upgrade
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.