如何将 MS Access 驱动程序安装到我的 docker 映像?或者还有其他办法可以解决这个问题吗?

问题描述 投票:0回答:2

应用程序背景:尝试部署一个自动化应用程序,其中用户选择*访问文件并可视化来自Python Flask后端计算的图形。

在本地下载“访问驱动程序”:https://www.microsoft.com/en-us/download/details.aspx?id=54920 [运行良好]。但无法部署在 Azure 上。

我尝试过的事情:

  1. 我尝试使用 Github CI/CD 运行此应用程序,但使用 Github actions azure 只能提供在 Linux 操作系统上运行的选项。这会给我同样的错误(pyodbc 连接)

  2. 构建可以消除此错误的 Docker 映像,但是,当在 Dockerfile 下选择“FROM python:slim-buster”时 - 它使用 linux 生成了 docker 映像,但出现了相同的错误。

此外,尝试使用

FROM microsoft/nanoserver
在 Dockerfile 中添加 Windows 操作系统,但在创建映像时仍然收到错误。

我对所有这些都很陌生,认为可能会犯错误。任何帮助将不胜感激。

windows azure docker flask deployment
2个回答
1
投票

经过大量的试验和错误,我能够在Azure上的Windows服务器上部署。

什么有效:

使用 ODBC 驱动程序 (AccessDatabaseEngine.exe) 在 Windows 服务器上部署应用程序。不是 64 位(AccessDatabaseEngine_X64.exe)。

也可以使用 Docker 映像进行部署,但 ** FROM microsoft/nanoserver ** 无法构建任何映像。而是尝试使用 ** FROM mcr.microsoft.com/windows/servercore:ltsc2019 **


0
投票

为此问题和类似问题添加一些知识:

我似乎成功地通过基于 mcr.microsoft.com/windows/servercore:ltsc2022 的 docker 映像安装了 AccessDatabaseEngine_X64.exe 和 AccessDatabaseEngine.exe。 跑步

`Get-OdbcDriver | Where-Object { $_.Name -like '*Access*' }`

在 Powershell 中列出了驱动程序,就像它已安装一样,但当我尝试在一个非常简单的 python 脚本中使用它时,我仍然收到这个非常神秘的消息;

pyodbc.Error: ('HY000', 'The driver did not supply an error!')

启用ODBC跟踪并查看日志没有给出更详细的解释。

为我解决这个问题的方法是将 Dockerfile 基于另一个 Windows Base 映像。其中任何一个都对我有用;

mcr.microsoft.com/windows/server:ltsc2022
mcr.microsoft.com/windows:ltsc2019

现在我可以神奇地使用 Microsoft Access 数据库引擎!

© www.soinside.com 2019 - 2024. All rights reserved.