【发布时间】:2021-11-10 11:46:55
【问题描述】:
我在我的 docker 文件中尝试了以下命令,但它仍然给我错误:-
需要最低版本 2.3.1 的依赖 unixODBC。无法加载共享库“libodbc.so.2”或其依赖项之一。为了帮助诊断加载问题,请考虑设置 LD_DEBUG 环境变量:liblibodbc.so.2.so: cannot open shared object file: No such file or directory
FROM 52423406.dkr.ecr.us-east-1.amazonaws.com/base-dev:microsoft-dotnet-2.1-sdk AS buildEnv
RUN apt-get update
RUN apt-get -y upgrade
RUN apt-get install -y apt-utils
RUN apt-get install -y odbcinst1debian2 libodbc1 odbcinst unixodbc
RUN apt-get install -y libsasl2-modules-gssapi-mit
RUN apt-get install unzip
RUN wget https://databricks-bi-artifacts.s3.us-east-2.amazonaws.com/simbaspark-drivers/odbc/2.6.18/SimbaSparkODBC-2.6.18.1030-Debian-64bit.zip && unzip SimbaSparkODBC-2.6.18.1030-Debian-64bit.zip && dpkg -i simbaspark_2.6.18.1030-2_amd64.deb
WORKDIR ./sourceCode
COPY . .
RUN ls
RUN dotnet restore ./Services/Services.csproj --configfile ./nuget.config
# -o paramter value of publish command uses absolute path so that publishOutput folder is in root, using relative path would create it relative to the csproj folder.
RUN dotnet publish --no-restore -c Release -o /publishOutput ./Services.DeletionTool/Services.csproj
FROM 52423406.dkr.ecr.us-east-1.amazonaws.com/base-dev:microsoft-dotnet-2.1-runtime
WORKDIR ./app
COPY --from=buildEnv /publishOutput .
RUN ls
EXPOSE 80
EXPOSE 443
ENTRYPOINT ["dotnet", "Services.DeletionTool.dll"]
为了解决这个问题,我尝试安装 libodbc1 ,看起来它是使用 docker 命令安装的,但是当我使用 kubernates 控制台命令验证已部署容器中的文件时,它的没有向我显示 /usr/lib/x86_64-linux-gnu/libodbc.so.2 的文件 .. 运行 docker 命令后,看起来安装的文件不会进入此路径。有什么建议请帮忙。
【问题讨论】:
标签: linux docker debian containers unixodbc