最近几天,我一直在努力为Linux(准确地说是Debian)容器上托管的ASP.NET Core应用程序正确配置Informix ODBC。

在构建过程中将.odbc.ini文件复制到/ root目录时,一切工作正常:

COPY ./.odbc.ini /root/

但是由于配置文件包含密码,所以我不想将这些文件发送到镜像中,因此宁愿从主机目录中挂载它们:
--mount type=bind,source=/usr/local/app/odbc/.odbc.ini,target=/root/.odbc.ini

这种绑定(bind)在开发机器上的Windows版Docker上运行时很好用,但是在Fedora29上的Docker上尝试时,我得到一个错误:
is not listed as a dbserver name in sqlhosts.er][Informix]Server cms_net

仅当从主机上安装.odbc.ini时才发生该错误,当与容器一起发布时,它可以正常工作。

在本机linux上挂载系统文件是否有任何限制(我只是假设这是由于启动时需要该文件,就像Windows上的某些文件一样,我对linux的理解非常有限)。

最佳答案

终于明白了,所需要做的就是删除指定ODBC.ini和ODBCINST.ini位置的环境变量并使用默认位置。

关于docker - Docker绑定(bind)安装适用于托管Windows上的odbc.ini文件,但不适用于Linux,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55111911/

10-15 22:47