自分用機械学習用dockerイメージ作る
要件
GPUを使いたいので、nvidia/cudaのイメージ使う
pythonの新しめのバージョンで固定する
poetry使いたい
調べるうちに、どいつもこいつもminicondaでサクッとpython入れてるのでこれに従ってしまおうか悩んでる
上の要件を満たす上での懸念事項
gpu使うなら
要件2つが一般的にはDockerfileのFROMを要求する
FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04
これをしたいが、そうすると後からpythonを入れる必要がある
FROM python:3.8とかで楽をしたいが、こうするとgpuが使えない
どっちかからどっちかに、ファイルの移動で解決できるならそうしたい
そのためには、
引っ張られる方のインストール作業の理解
必要なバイナリの特定
その他の副作用が存在しないこと
を把握する必要がある
結論 2020/9/2
pytorchの公式イメージが楽で手堅い
nvidia/cudaイメージから初めて、minicondaでpythonを入れる
必要に応じてFROMからなんかやる
code:Dockerfile
FROM pytorch/pytorch
COPY pyproject.toml poetry.lock /code/
WORKDIR /code
RUN pip install poetry
RUN poetry config virtualenvs.create false && poetry install --no-interaction --no-ansi
COPY . /code
こんな感じで十分
必要に応じてバージョン固定とかしよう
以下は調査ログ
調査
kaggleのイメージ
cudaの諸々をコピーしている
普通にpythonのインストール手順を確認
code:bash
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.8
また、それでどうせalpineでないイメージを使うので、ビルドステージをalpineとかにするメリットは無いと思う
ubuntuとcentos
debianは無い?
補足:ubuntuはdebianから派生したos
pytorchの公式イメージは何をしてるか
nvidia/cudaからのminicondaですね
python:3.8.5のlatestはbuster(debianのバージョン、コードネーム)
これにkaggleのやり方真似て必要なものコピーしたら動いたが
nvidia-msiが見えない
cudaベースに公式pythonイメージのdockerfileコピペしたりしたけど動かず
面倒なのでpytorch公式イメージからやることにした
短くて理解もできるし…
nvidia/cudaはgitlabだけどnvidia/nvidia-dockerはgithubなのどういうことなんだろ