Доступ к SQL Server из Docker - PullRequest
       0

Доступ к SQL Server из Docker

0 голосов
/ 04 декабря 2018

Я пытаюсь получить доступ к базе данных SQL Server, работающей на другом компьютере в сети, из образа Alpine Docker, работающего на компьютере с Ubuntu.Пока что я могу получить доступ к базе данных с компьютера с Ubuntu, но не могу подключиться к ней из контейнера.Установив network_mode: host внутри моего docker-compose.yml файла, я могу пропинговать базу данных SQL Server, но все равно не могу подключиться к ней с помощью isql, tsql или модуля Python pyodbc.

Я могу использовать tsql, чтобы найти базу данных от хоста и контейнера, но я не могу подключиться к базе данных из контейнера.

# works fine from host and container
tsql -H apex-data.apex.local -L

# only works from host
tsql -S apex-data -p 1433 -U condor
# or alternatively with /etc/odbc.ini
isql APEXDSN

Вот мой Dockerfile:

FROM python:3.6-alpine3.7

ENV PYTHONUNBUFFERED 1

# update apk repo
RUN echo "http://dl-4.alpinelinux.org/alpine/v3.7/main" >> /etc/apk/repositories && \
    echo "http://dl-4.alpinelinux.org/alpine/v3.7/community" >> /etc/apk/repositories

RUN apk update && apk upgrade && \
    apk add unixodbc unixodbc-dev && \
    apk add freetds && \
    apk add build-base

WORKDIR /usr/src/project

COPY requirements.txt ./
RUN pip install -r requirements.txt

COPY odbc.ini /etc/odbc.ini
COPY odbcinst.ini /etc/odbcinst.ini

COPY project ./

Мой docker-compose.yml выглядит так:

version: '3.2'

services:

  app:
    build: .
    container_name: "nf-app"
    command: python3 app.py
    volumes:
      - ./project:/usr/src/project
    ports:
      - "3001:3001"
      - "1433:1433"
    network_mode: host

Вот файл odbcinst.ini:

[FreeTDS]
Description = TD Driver (MSSQL)
Driver = /usr/lib/libtdsodbc.so.0

[ODBC]
Trace = Yes
ForceTrace = Yes
TraceFile = /usr/src/project/logs/odbc.log
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...