在Alpine Linux Docker容器中安装ODBC驱动程序

时间:2018-08-17 03:38:35

标签: docker odbc dockerfile pyodbc unixodbc

我目前拥有以下Dockerfile来创建我的Docker映像。

FROM python:3.6.6-alpine3.8

# Add dependencies for Python packages pandas, numpy and pyodbc
RUN apk add --no-cache curl gcc g++ unixodbc-dev
RUN ln -s /usr/include/locale.h /usr/include/xlocale.h

# Project files
ARG PROJECT_DIR=/srv/scripts
RUN mkdir -p $PROJECT_DIR
WORKDIR $PROJECT_DIR
COPY requirements.txt ./

# Install Python dependencies
RUN pip install --upgrade pip
RUN pip install -r requirements.txt

我想在此图中包括各种ODBC驱动程序,以便可以使用它们从容器中运行的Python程序连接到不同的数据库。

  • Python程序正在使用Pyodbc连接到数据库。
  • 我需要安装的ODBC驱动程序是:
    • PostgreSQL
    • MySQL
    • SQL Server女士
    • Teradata
    • Oracle
    • 蜂巢
    • 飞羚

我想从PostgreSQL开始,认为它是最简单的,但是我在Alpine Linux Package manager上找不到任何软件包。您知道我应该如何安装这样的驱动程序吗?

3 个答案:

答案 0 :(得分:5)

我面临着同样的问题。我通过在RUN apk update命令之前添加RUN apk add解决了这个问题。(我使用的是python:3.6-alpine)

Dockerfile

FROM python:3.6-alpine
RUN apk update
RUN apk add gcc libc-dev g++ libffi-dev libxml2 unixodbc-dev mariadb-dev postgresql-dev

答案 1 :(得分:2)

随着OP逐渐从Alpine迁移到基于Debian的映像,并且另一个答案给出了运行中的Dockerfile的小快照,我将充实一个完整的Dockerfile,该文件将SQL Server ODBC Driver 17构建为基于Debian的图片。

<div>
  <a href="#" class="btn--tertiary">Button</a>
</div>

答案 2 :(得分:0)

如果要保持轻巧是您的关注点,尤其是在odbc的情况下,我建议使用debian:stretch image。