我试图使用Docker从Python中生成一个简单的调用。如果我运行python脚本,则SQL连接能够建立,但是它的不能从Docker中运行。
我的代码在下面
Dockerfile
from python:3
WORKDIR /code
COPY requirements.txt .
RUN apt-get update \
&& apt-get install unixodbc -y \
&& apt-get install unixodbc-dev -y \
&& apt-get install freetds-dev -y \
&& apt-get install freetds-bin -y \
&& apt-get install tdsodbc -y \
&& apt-get install --reinstall build-essential -y
RUN echo "[FreeTDS]\n\
Description = FreeTDS Driver\n\
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so\n\
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so" >> /etc/odbcinst.ini
#Pip command without proxy setting
RUN pip install -r requirements.txt
COPY src/ .
CMD ["python", "./producer.py"]producer.py
import pyodbc
connP = pyodbc.connect('driver={FreeTDS};'
'server={MYSERV01\SQLEXPRESS};'
'database=ABCD;'
'uid=****;'
'pwd=*****')requirement.txt
kafka-python
pyodbc==4.0.28错误消息

我提到了这篇文章,就这样做了。我在网上搜索决心,并尝试了几个步骤,但没有任何帮助。我对Docker非常陌生,没有Python方面的经验,所以任何帮助都会很好。提前感谢!
发布于 2021-01-04 07:36:05
我试图连接到本地Server数据库。我参考了许多文章,并指出以下代码是有效的:
服务器应该有host.docker.inter,<port_no> --这就是问题所在。当涉及到sql服务器与docker映像不同的专用数据库时,直接提供服务器名称,但是当映像和数据库都位于同一服务器时,下面的代码可以工作。请检查SQL配置TCP地址(IP4All)中的端口号。

发布于 2020-12-15 23:26:58
在您的pyodbc.connect中,尝试将服务器赋值为'0.0.0.0‘,而不是任何其他值。
如果要从容器中调试它,请注释Dockerfile的最后一个CMD行。
构建您的码头集装箱
docker build -f Dockerfile -t achu-docker-container .运行您的码头集装箱
docker run -it achu-docker-container /bin/bash这会把你放进容器里。这就像,另一台机器。
去你的世界
cd code
python ./producer.py上面写的是什么?(如果使用apt-get install vim安装任何编辑器,您将能够交互地编辑producer.py文件,并从正在运行的容器中修复问题。
然后,您可以将更改移动到源Dockerfile中,并使用它构建一个新的映像和容器。
https://stackoverflow.com/questions/65275909
复制相似问题