Не могу подключиться к Docker SQL контейнеру SERVER, используя FreeTDS - PullRequest
0 голосов
/ 05 марта 2020

Ошибка:

connection = pyodb c .connect ('Driver = {FreeTDS};' pyodb c .OperationalError: ('08S01', u '[08S01 ] [unixODBC] [FreeTDS] [SQL Сервер] Невозможно подключиться: Adaptive Server недоступен или не существует (20009) (SQLDriverConnect) ') memorysnapshot_app_1 завершен с кодом 1

Dockerfile:

FROM ubuntu:latest

# install FreeTDS and dependencies
RUN apt-get update \
    && apt-get install -y python-pip python-dev \
    && 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

# populate "ocbcinst.ini"
RUN echo "[FreeTDS]\n\
Description = FreeTDS unixODBC Driver\n\
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so\n\
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so" >> /etc/odbcinst.ini

# install pyodbc
RUN pip install --trusted-host pypi.python.org pyodbc==4.0.26

WORKDIR /app
COPY . /app

RUN pip install -r requirements.txt

# run app.py upon container launch
CMD ["python", "app.py"]

App.py

import pyodbc

app = Flask(__name__)

connection = pyodbc.connect('Driver={FreeTDS};'
                            'Server=localhost,1433;'
                            'Database=OTC;'
                            'UID=sa;'
                            'PWD=Password123!')



def test_localhost(cursor):
    cursor = connection.cursor()    
    cursor.execute("SELECT * FROM otc.dbo.memorysnapshot")  # WHATEVER QUERY YOU WANT TO EXECUTE GOES IN HERE
    for row in cursor:
        print render_template('index.html', cursor=data)


    connection, cursor = pyodbc_localhost()
    test_localhost(cursor)
    cursor.close()
    connection.close()

if __name__=="__main__":
    app.run(debug=True, host='0.0.0.0')
...