友人に alpine + Python3 + TensolFlow + Jupyter のdockerイメージを作ってもらって、それベースにKerasとサンプルデータ入りのdockerイメージを作ったのですが、Kerasからモデルのsaveをしようとするとエラーになってしまいました。
KerasはHDF5形式という科学技術計算で大量データを吐く時に使われるデータ形式でsaveするのですが、PythonでHDF5を扱うためにはh5pyというモジュールを入れる必要があり、さらにh5pyはlibhdf5というライブラリを必要としています。
ありがたいことにlibhdf5はAlpineでもパッケージが用意されているのですが、testingにしかないため、apkのリポジトリにtestingを追加してやる必要がありました。
またh5pyはpip3で入るのですが、コンパイルされるためコンパイル環境が必要になります。少なくともgccと、musl-devというglibc-devにあたるもの、あとcythonとPython3のヘッダファイルも必要になるためpython3-devが必要になります。
なので必要なことをまとめると
/etc/apk/repositories に追加
http://dl-cdn.alpinelinux.org/alpine/edge/testing
コマンド実行
# apk add gcc musl-dev cython python3-dev hdf5-dev # pip3 install h5py
でh5pyを入れることが出来ました。