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"]