🐬

libmysqlclient-devはdefault-libmysqlclient-devへ生まれ変わったのだ...

2018/05/30に公開約1,100字

はじめに

FROM python:latest

RUN apt -y update
RUN apt install -y build-essential libmysqlclient-dev libpcre3-dev tzdata

...

python:latest をベースイメージとした Dockerfile のビルドで下記のエラーでコケてしまった際の対処方法です。

E: Package 'libmysqlclient-dev' has no installation candidate

今まで libmysqlclient-dev は普通にインストールできていたのにどうしてでしょう。。。

原因

FROM buildpack-deps:stretch <- stretchになってる!!

# ensure local python is preferred over distribution python
ENV PATH /usr/local/bin:$PATH

...

公式の python:latest の Dockerfileのベースイメージが jessie から stretch にアップデートされており、 libmysqlclient-devdefault-libmysqlclient-dev に変更されていたことが原因でした。

https://packages.debian.org/stretch/default-libmysqlclient-dev

解決策

FROM python:latest

RUN apt -y update
RUN apt install -y build-essential libpcre3-dev tzdata

...

libmysqlclient-dev を削除します。
名前から自明のように、 default-libmysqlclient-dev はデフォルトでインストールされているパッケージです。
jessie から stretch でデフォルトのパッケージに繰り上がったらしいですね。

GitHubで編集を提案

Discussion

ログインするとコメントできます