skydum

個人的な作業記録とか備忘録代わりのメモ

Docker + python + mysqlclientをインストール

Docker + python + mysqlclientをインストールする

Dockerにmysqlclientを入れようとした所ちょっとハマったので忘れないようにメモ。
mysqlclientは色々なOSにインストールする度に躓いてしまう。
mysqlclientのバージョンによって少しだけ必要なパッケージが異なる。

Dockerの中にmysqlclientを入れるためとはいえ、gccとか入れておきたくはないのでマルチステージビルドをした方が良いのかなと思いつつも、検証用に使うだけなのでこのまま使うこととする。

mysqlclient<2.2.0の場合

  • python 3.11.4
  • mysqlclient<2.2.0
FROM python:3.11.4-slim

RUN apt-get update \
    && apt-get install --no-install-recommends -y default-libmysqlclient-dev gcc \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY . /app

RUN pip install --no-cache-dir --upgrade pip && pip install --no-cache-dir -r requirements.txt

EXPOSE 5000

CMD ["python", "app.py"]

mysqlclient>=2.2.0の場合

  • python 3.11.4
  • mysqlclient>=2.2.0
FROM python:3.11.4-slim

RUN apt-get update \
    && apt-get install --no-install-recommends -y default-libmysqlclient-dev gcc pkg-config \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY . /app

RUN pip install --no-cache-dir --upgrade pip && pip install --no-cache-dir -r requirements.txt

EXPOSE 5000

CMD ["python", "app.py"]