web-dev-qa-db-ja.com

Alpine Linux Docker ContainerにODBCドライバをインストールします

現在、Dockerイメージを作成するための次のDockerfileがあります。

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
    • MS SQLサーバー
    • Teradata
    • オラクル
    • ハイブ
    • インパラ

私はPostgreSQLを最も簡単な方法だと思い始めましたが、 Alpine Linux Package Manager でパッケージを見つけることができませんでした。私はそのようなドライバーをどのようにインストールすればよいか考えていますか?

9
Alexis.Rolland

私は同じ問題に直面していました。 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
9
Shubham Patel

特にodbcの場合、それを軽量に保つことが懸念される場合は、debian:stretch imageを使用することをお勧めします。

0
Abhijeet Padwal